Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS第二次触摸从不触发UIControlEventTouchUpInside_Ios_Objective C_Xcode - Fatal编程技术网

iOS第二次触摸从不触发UIControlEventTouchUpInside

iOS第二次触摸从不触发UIControlEventTouchUpInside,ios,objective-c,xcode,Ios,Objective C,Xcode,嘿,假设我有两个按钮,并按如下方式设置选择器: button1 addTarget:self action:@selector(actionPick:) forControlEvents:UIControlEventTouchDown]; button1 addTarget:self action:@selector(actionUp:) forControlEvents:UIControlEventTouchUpInside]; button2 addTarget:self actio

嘿,假设我有两个按钮,并按如下方式设置选择器:

 button1 addTarget:self action:@selector(actionPick:) forControlEvents:UIControlEventTouchDown];
 button1 addTarget:self action:@selector(actionUp:) forControlEvents:UIControlEventTouchUpInside];

 button2 addTarget:self action:@selector(actionPick:) forControlEvents:UIControlEventTouchDown];
 button2 addTarget:self action:@selector(actionUp:) forControlEvents:UIControlEventTouchUpInside];
这两种方法都工作得很好,只是如果我执行以下操作,
actionUp:
不会被调用

TouchDown button1 //works
TouchDown button2 //works
Touch  Up button2 //works
Touch  Up button1 //not called
所以我

  • 按第一个按钮(手指放在上面)
  • 打第二个
  • 释放第二个
  • 松开第一个按钮

你知道怎么解决这个问题吗?为什么
actionUp:
似乎在我举起手指之前就被使用了?

检查UIView的multipleToucheEnabled属性。它的默认值是NO

我做了一个演示项目来研究iOS中按钮的事件。 我的演示似乎在所有场景中都能正常工作,由于时间限制,我无法在这里添加足够的解释,因此,这里是指向git回购的链接。。。。

看看你能找到什么。。。
快乐编码:)

我在iphone5s+iphone6+iphone6plus上用ios7.1+ios8.0和ios9.0.2进行了测试,效果很好。如果这种情况经常发生,那么您的事件目标层次结构是错误的,或者在某种程度上被破坏了。在像这样添加之前,尝试删除所有目标

[button1 removeTarget:nil action:NULL forControlEvents:UIControlEventAllEvents];

[button2 removeTarget:nil  action:NULL forControlEvents:UIControlEventAllEvents];

我试图重现这种行为,但我做不到。我的两个按钮按预期工作:触地按钮1->触地按钮2->触地按钮2->触地按钮1你试过不同版本的iOS吗?它们的行为方式是否相同?我无法在运行9.1beta的iPhone 6上重现此错误。我已尝试直接从情节提要连接这些操作,并且似乎按照预期工作: