【问题标题】:round image button VS square controller圆形图像按钮 VS 方形控制器
【发布时间】:2011-12-20 13:53:49
【问题描述】:

我有一个带有圆形图像的自定义按钮。

问题是控制器默认是方形的,所以每当我点击图像的角落时,按钮都会响应调用关联的方法,而实际上他不应该因为角落上没有图像,所以按钮不应该响应。

有人知道解决这个错误的方法吗?

【问题讨论】:

    标签: iphone objective-c uibutton xib


    【解决方案1】:

    解决此问题的一种方法是减小按钮的大小。不过,它仍然是一个矩形(或正方形)。更多涉及的方法是实现- (UIView *) hitTest: (CGPoint) pt withEvent: (UIEvent *) event & 处理按钮的哪个区域被单击& 如果它不在您定义的圆圈中,则忽略该触摸事件。

    但如果你问我,就让它成为现实吧。在联系中,人们很少那么准确(与鼠标点击相比)。所以矩形按钮为用户提供了更多的区域来点击按钮,即使他稍微偏离了标记。

    【讨论】:

    • 但是如果我减小按钮的大小,我会减小图像的大小。这不是我想要的,我想要保持图像的大小。
    • @bruno,那么您必须查看其他解决方案。 hitTest 方法
    • 我使用按钮顶部的第二个视图解决了我的问题,在 touchesBegan 方法上我检查了我的视图的标签(如果它是我初始化的标签,我我按下按钮,否则我不按下它)。你用你的 hitTest 给了我这个想法,所以我会把这个答案标记为正确的,因为我认为你的解决方案也可以。
    【解决方案2】:

    您无法通过 UIControl 设置解决此问题。您必须进行自定义命中检测并确定图像是否处于点击状态。您可以使用 UITapGestureRecognizer 执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多