gpt4 book ai didi

ios - iPhone/iPad 标识 touchBegin、touchEnd

转载 作者:行者123 更新时间:2023-11-29 04:48:41 25 4
gpt4 key购买 nike

我正在尝试构建具有多点触控功能的简单应用程序。我是 iOS 和 Objectivec/cocoa 的新手。所以,如果问题如此愚蠢,请抱歉。

我想知道现在有多少个手指处于事件状态,以及在用户释放某些手指或所有手指后释放的手指。我想集中注意力,我需要确切地知道哪根手指被释放了。乍一看似乎一切都很简单......但在实践中我遇到了问题(

假设我同时将 3 个手指放在屏幕上,然后过了一段时间我将第四个手指放在屏幕上。在这种情况下,我的 UIView.m 文件中被称为两个“touchesBegan”事件。在第一个事件中,我得到的触摸计数 = 3',在第二个事件中,触摸计数将 = 4'(这是正确的,因为这是一个总计数器)。所以这次事件似乎一切都清楚了。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSSet *allTouches = [event allTouches];
NSArray *allObjects=[allTouches allObjects];
touchCount = [NSNumber numberWithInt:[allObjects count]]; // this is my main counter of current active touches.
NSLog(@"%d", touchCount.intValue);
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
//what I should do ????
}

让我们将屏幕分为 4 部分。想象一下 iPad 屏幕上有 4 个矩形。

让我们为这个矩形创建四个 4 bool 变量。我们将存储所有 4 个矩形的状态。默认情况下,所有变量均为 - false;

bool rectangle1 = false;
bool rectangle2 = false;
bool rectangle3 = false;
bool rectangle4 = false;

然后,当手指开始向下时,在“touchesBegan”事件中我们更改 bool 变量。我通过 x-y 坐标知道我们应该更改哪个变量。假设我将手指放在矩形 #2 上,然后我将另一根手指放在矩形 #4 上。在这种情况下,变量将如下:

bool rectangle1 = false;
bool rectangle2 = true;
bool rectangle3 = false;
bool rectangle4 = true;

此后,我从矩形 #4 中松开一根手指。那么我如何在“touchesEnded”事件中知道这是从一开始就位于矩形 #4 区域上的手指被释放的呢?

最佳答案

我强烈建议使用此类,而不是编写自定义代码:UIGestureRecognizer ,有具体的实现来实现你想要的。

关于ios - iPhone/iPad 标识 touchBegin、touchEnd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215925/

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