非常好奇 - XIB中的标准round-rec UIButton。 touchUpInside是否链接到视图控制器中的方法。在模拟器上它按预期工作,但在iOS 5 iPad上,必须按住按钮2秒才能调用链接方法(cancelButtonPressed :)。
提取和记录按钮的目标操作表明它确实在寻找正确的目标对象和方法的touchUpInside事件。
为新目标方法添加(在viewDidAppear中)操作会产生相同的行为 - 仅当按下按钮2秒(然后释放)时才会调用新方法。它在原始方法之后立即被调用。
警告:这个设置当然是一个发型。这是在主屏幕上浮动的模态视图。为了到达这里,在VC的视图加载之后,VC和它的原始视图之间插入了一个视图。
但当然它在模拟器上运行得很好。 (也可能在iOS6硬件上,虽然我还没试过。)
所以任何想法是什么可以创造需要按住按钮2秒?触摸后立即“动画”(变成颜色)按钮,所以不是简单地长时间触摸传播。
更多信息:运营顺序
makeKeyAndVisible
在新窗口中。(这(几乎)成功创建了一个带有所选VC的“弹出窗口”。)
观察:
啊哈!
在写这篇文章时,我发现手势识别器可能会以某种方式参与其中。禁用他们,不再是问题。这些是UITapGestureRecognizers,不应该(人们会想到)影响按钮响应(因为在其他地方提倡相同的方案来检测“框外”的触摸)。 (立即调用手势识别器处理程序。)
(并不是说这个知识对我有好处,除了我可以在iOS 5上禁用“开箱即用”功能。)
答案 0 :(得分:2)
在iOS5中这样做是为了避免它:
- (void)tappedAction:(UIGestureRecognizer *)sender {
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version < 6.0) {
CGPoint pt = [sender locationInView:_button];
NSLog(@"%@", NSStringFromCGPoint(pt));
if (CGRectContainsPoint( _button.bounds, pt)) {
[self buttonAction:_button];
return;
}
}
// do some Tapped Action
NSLog(@"tappedAction:");
}