【发布时间】:2016-11-22 05:57:30
【问题描述】:
我正在尝试创建一个半圆形的按钮。
内部按钮类
layoutSubviews() {
createSemiCirclePath()
}
func createSemiCirclePath(){
self.translatesAutoresizingMaskIntoConstraints = false
self.clipsToBounds = true
semiCircleShape.path = UIBezierPath.init(arcCenter: CGPoint(x: self.frame.size.width/2 , y:0), radius: self.frame.size.width/2, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: true).cgPath
self.layer.addSublayer(semiCircleShape)
self.layer.masksToBounds = true
}
我明白了:
但我想要这样:
如果我在尝试
func createSemiCirclePath(){
self.translatesAutoresizingMaskIntoConstraints = false
self.clipsToBounds = true
semiCircleShape.path = UIBezierPath.init(arcCenter: CGPoint(x: self.frame.size.width/2 , y:0), radius: self.frame.size.width/2, startAngle: 0, endAngle: CGFloat(M_PI), clockwise: true).cgPath
self.layer.mask = semiCircleShape
self.layer.masksToBounds = true
}
我的按钮是
它还允许点击按钮高度的 50% 以下,我不需要。
(在 1 个代码中)
问题是,只有黑色部分应该是可点击的,而蓝色部分应该被隐藏,即它应该剪辑到子图层。
感谢任何建议。 谢谢。
【问题讨论】:
-
是的,但是整个矩形按钮不仅可以点击半圆形部分。