ios - 带圆角的 UIButton 的事件可点击区域?

原文 标签 ios swift uibutton

所以我在我的 Storyboard中创建了一个带边框的按钮。
enter image description here

然后我圆了它的角并添加了边框颜色:

button.layer.cornerRadius = button.bounds.size.width / 2
button.layer.borderColor = greenColor

所以运行时结果如下所示:
enter image description here

然而,用户可以在按钮区域(以前的角落)之外稍微点击,并且仍然调用按钮功能。有没有办法将按钮的启用区域限制为圆形?

最佳答案

使用其他答案您阻止触摸,我需要它通过。
它甚至更容易:

1)设置您的首选路径(对我来说是圈子)

private var touchPath: UIBezierPath {return UIBezierPath(ovalIn: self.bounds)}

2) 函数内部的覆盖点
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    return touchPath.contains(point)
}

所有在你的 UIButton 子类中。

关于ios - 带圆角的 UIButton 的事件可点击区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617784/

相关文章:

ios - 如何从Apple读取此崩溃日志

swift - 如何用Swift创建一个MIDI文件?

iphone - 带有图像的自定义 UIButton

ios - CGAffineTransform旋转UIButton

objective-c - objective-c :按下按钮后切换属性的BOOLEAN值的问题

ios - MPMoviePlayerController 起始图像

ios - Swift数组无法正确维护项目

objective-c - 游戏中心调用排行榜功能没有响应?

ios - 解析查询和Swift上的数组排序顺序

swift - 有效地添加和删除多个节点,没有任何滞后