【发布时间】:2011-12-20 13:53:49
【问题描述】:
我有一个带有圆形图像的自定义按钮。
问题是控制器默认是方形的,所以每当我点击图像的角落时,按钮都会响应调用关联的方法,而实际上他不应该因为角落上没有图像,所以按钮不应该响应。
有人知道解决这个错误的方法吗?
【问题讨论】:
标签: iphone objective-c uibutton xib
我有一个带有圆形图像的自定义按钮。
问题是控制器默认是方形的,所以每当我点击图像的角落时,按钮都会响应调用关联的方法,而实际上他不应该因为角落上没有图像,所以按钮不应该响应。
有人知道解决这个错误的方法吗?
【问题讨论】:
标签: iphone objective-c uibutton xib
解决此问题的一种方法是减小按钮的大小。不过,它仍然是一个矩形(或正方形)。更多涉及的方法是实现- (UIView *) hitTest: (CGPoint) pt withEvent: (UIEvent *) event & 处理按钮的哪个区域被单击& 如果它不在您定义的圆圈中,则忽略该触摸事件。
但如果你问我,就让它成为现实吧。在联系中,人们很少那么准确(与鼠标点击相比)。所以矩形按钮为用户提供了更多的区域来点击按钮,即使他稍微偏离了标记。
【讨论】:
hitTest 方法
您无法通过 UIControl 设置解决此问题。您必须进行自定义命中检测并确定图像是否处于点击状态。您可以使用 UITapGestureRecognizer 执行此操作。
【讨论】: