1

有没有办法通过touchesEnded. 只有当点击持续时间超过一两秒时,它才会触发。有没有办法让它在所有的修饰上触发?它注册所有touchesBegan.

这是简单的代码:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

     NSLog(@"Touch Ended");
}
4

2 回答 2

1

默认情况下禁用多点触控。如果您想接收多个触摸事件,您必须将multipleTouchEnabled 您使用的视图的 a 设置为 YES。要做到这一点,你ViewDidLoad只需写self.view.multipleTouchEnabled= YES,因为它只是一个属性。

另一个问题可能与 Magic Trackpad 有关,因为它会在决定您结束触摸之前添加延迟。尝试禁用它:>系统偏好设置>个人>通用访问>鼠标和触控板>触控板选项>当鼠标存在时忽略触控板.

于 2013-07-18T17:36:29.643 回答
1

-touchesEnded:withEvent:即使是短暂的触摸也会被调用,比如点击。您的响应者链中可能有一些东西正在处理触摸。例如,滚动视图通常会延迟触摸,直到它们确定用户是否正在尝试滚动,并且手势识别器也可以延迟触摸事件。具体来说,UIGestureRecognizer 有一个delaysTouchesEnded可能会干扰您的代码的属性。

于 2013-07-18T17:39:12.063 回答