这是一个奇怪的......
我有一个UIView
xib文件,如下所示:
我已将每个UIButton
touchDown
和touchUpInside
个事件与两个IBAction
方法相关联:
- (IBAction)touchUpInside:(id)sender
{
NSLog(@"touch up inside");
if (((UIButton *)sender == _enter) | ((UIButton *)sender == _back)) {
[(UIButton *)sender setBackgroundColor:_color2];
}
else {
[(UIButton *)sender setBackgroundColor:_color1];
}
}
- (IBAction)touchDown:(id)sender
{
NSLog(@"touch down");
[(UIButton *)sender setBackgroundColor:_color2];
}
除了UIButton
的最底行之外,一切都有效,这是奇怪的部分:
touch down
事件被触发,但按钮必须保持0.5秒才能更改背景颜色,而其他按钮则立即显示。
它仅发生在UIButton
的最底行,因为我试图用按钮@back,0,@enter切换按钮7,8,9,如下所示:
我已经在Interface Builder中检查了所有UIButton
属性是否相同,我尝试移动UIButton
的对象顺序,如图所示左侧所示,我已经完成了想法。基本上奇怪的是UIControl
行为根据其在父视图上的位置而有所不同......
更新:我将父UIView
高度值设置得足够大,以至于最后一行下方有50个自由像素,UIButton
现在工作正常。我现在能想到的唯一原因是下面有UITabBar
个2视图控制器。即使这样也没有意义。
答案 0 :(得分:2)
期望用户从屏幕底部向上滑动以显示 控制中心。如果iOS确定触摸开始于 屏幕下方应显示控制中心,它不提供 对当前正在运行的应用程序的手势。如果iOS确定了 触摸不应显示控制中心,触摸可能会略有 在到达应用程序之前延迟。
这里有一个解决方案: UIButton fails to properly register touch in bottom region of iPhone screen
但是,在您的情况下,我认为您应该在inputView
中使用UIResponder
请参阅:https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html
inputView
不会受到该问题的影响。