gpt4 book ai didi

iphone - 如何让多个触摸按钮与 TouchBegan/Moved 一起使用?

转载 作者:行者123 更新时间:2023-12-03 21:12:27 25 4
gpt4 key购买 nike

我有一堆按钮,我想以三种不同的方式激活它们。

  1. 着陆
  2. 触摸 - 多次触摸(同时)
  3. 触摸内部拖动(与在钢琴上拖动手指相同)

前两个在 IB 中显然很容易。然而,包括我在内的很多人都在使用 Touch Drag 时遇到了麻烦。所以我最终使用 - (void) TouchMoved [参见代码] 。这对于拖动来说非常有用...但是为了让它工作,我必须禁用 IB 中的“用户交互”按钮。这意味着我失去了“Touch Down”和多点触控功能。

因此,为了让“Touch Down”发挥作用,我使用了 -(void)touchesBegan [参见代码]。这工作正常,但我无法让多点触控工作。

有谁知道如何让我的按钮在多点触控期间同时触发?
或者...有没有办法让IB中的触摸移动和按钮功能一起工作?

我已经尝试过touch.view.multiTouchEnabled = Yes;并且我已经确保我的按钮在IB中可以多次触摸......但什么也没有。

下面是我的代码。非常感谢您的帮助。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event touchesForView:self.view] anyObject];

CGPoint location = [touch locationInView:touch.view];

if(CGRectContainsPoint(p1.frame, location))
{
if (!p1.isHighlighted){
[self pP01];
[p1 setHighlighted:YES];
}
}else {
[p1 setHighlighted:NO];
}
//
if(CGRectContainsPoint(p2.frame, location))
{
if (!p2.isHighlighted){
[self pP02];
[p2 setHighlighted:YES];
}
}else {
[p2 setHighlighted:NO];
}
if(CGRectContainsPoint(p3.frame, location))
{
if (!p3.isHighlighted){
[self pP03];
[p3 setHighlighted:YES];
}
}else {
[p3 setHighlighted:NO];
}
}

///

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event touchesForView:self.view] anyObject];
CGPoint location = [touch locationInView:touch.view];

if(CGRectContainsPoint(p1.frame, location))
{
[self pP01];
[p1 setHighlighted:YES];
}
if(CGRectContainsPoint(p2.frame, location))
{
[self pP02];
[p2 setHighlighted:YES];
}
if(CGRectContainsPoint(p3.frame, location))
{
[self pP03];
[p3 setHighlighted:YES];
}
}

最佳答案

您需要检查每次触摸,而不是随机触摸。因此,for(UITouch *t in Touchs) 而不是 UITouch *touch = [touches anyObject]

关于iphone - 如何让多个触摸按钮与 TouchBegan/Moved 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com