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 - 如何让一个 View Controller 从另一个 View Controller 访问变量?

ios - 为什么我的 UIColor 无法正确创建?

iphone - 连接从自定义类加载的 XIB 到 Storyboard的操作

ios - 仅在单击按钮后显示事件指示器

ios - 检索从应用程序拍摄的照片

iphone - Wi-fi 抓包 IVS。

swift - 如何使用数据和可编码的Swift优化NSAttributedString的存储?

ios - 从 Tableview 的第 0 节中删除按钮

iphone - 如何延时连续显示标签

swift - 是否可以向 Swift 协议(protocol)一致性扩展添加类型约束?