【发布时间】:2014-07-31 07:13:32
【问题描述】:
这是一个奇怪的..
我有一个如下所示的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 个视图控制器级别。即使这样也没有意义。
【问题讨论】:
标签: ios objective-c iphone uiview uibutton