UIButton触发选择器不一致

时间:2011-06-17 08:41:10

标签: objective-c ios xcode cocoa-touch

我在IB中正确连接了一个UIButton(我相信)。按钮触发不一致,每次重新加载视图以显示更新的信息时,按钮有时会工作,有时则不会。它没有错误。我找不到一个模式,当它工作时,当它不工作时,每次打开视图时都会运行相同的代码,它仍然可以在需要时运行。除了在IB中链接它我还尝试在ViewDidLoad中添加目标并删除IB连接但它仍然具有相同的不一致性,

[_buttonScreen addTarget:self action:@selector(buttonScreenClicked)  forControlEvents:UIControlEventTouchUpInside];   

如果我添加NSLog(@“Clicked”); to buttonScreenClicked我看到该方法并不总是被调用,会导致它做什么,我已经确定我设置了:

[_buttonScreen setAlpha:0.1];
[_buttonScreen setHidden:NO];
[_buttonScreen setUserInteractionEnabled:YES];

按钮中没有图像,文字或颜色,但有时仍可使用。 我在相同的视图上使用AFKPageFlipper,但在添加AFKPageFlipper之前它仍然存在同样的问题,所以我不认为它。

如果有人能指出我在任何方向上开始解决这个问题,我将不胜感激。

由于

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并将其解决了。 5秒是线索。

在某处你有一个手势识别器,覆盖与按钮相同的空间。更具体地说,你有一个手势识别器正在吃你的水龙头而不是你的LongPresses。如果你只是点击按钮,手势识别器会随着你的事件而消失;将手指放下足够长的时间,手势识别器不再将其视为点按,事件将传递到您的按钮。

对您的Tap手势识别器处理程序进行检测,问题就会突然出现。

答案 1 :(得分:0)

确保没有任何其他UIView后代覆盖按钮(如透明的UIScrollView),因为这些将首先拦截触摸事件。

还要确保包含视图(带有按钮的视图)的大小正确,默认情况下,您可以将视图放在另一个视图的边界之外,并将clipsToBounds设置为false,这样您就可以看到它但不是能够与之互动。

答案 2 :(得分:0)

要尝试的事情:

按钮上还有其他动作吗? 你还有其他可能接受按键的UIViews(上方或下方,或未显示) 另外,请检查此屏幕只有一个UIViewController实例。因此可能会产生其他问题。 如果你没有设置alpha级别会发生什么?

您是否仅在dealloc中正确释放对象?

希望这有帮助