【发布时间】:2017-05-05 04:25:41
【问题描述】:
我在堆栈视图中有两个按钮。我使用了 UIButton 的扩展来圆外角。这适用于我在情节提要中设计的 7Plus,但是一旦我在模拟器中运行较小的设备尺寸,它就会停止工作,我只能在任一按钮的左侧而不是右侧圆角。有什么想法吗?
这些是我正在使用的扩展
extension CGSize{
init(_ width:CGFloat,_ height:CGFloat) {
self.init(width:width,height:height)
}
}
extension UIButton{
func roundOneSide(topCorner: UIRectCorner, bottomCorner: UIRectCorner){
let maskPAth1 = UIBezierPath(roundedRect: self.bounds,
byRoundingCorners: [topCorner , bottomCorner],
cornerRadii:CGSize(6.0, 6.0))
let maskLayer1 = CAShapeLayer()
maskLayer1.frame = self.bounds
maskLayer1.path = maskPAth1.cgPath
self.layer.mask = maskLayer1
}
}
我也尝试了以下代码,但无济于事。只有当约束起作用时,它才能成功地绕过左边的角落。
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: [.topLeft, .bottomRight], cornerRadii: CGSize(width: 6, height: 6)).cgPath
facebookBtn.layer.mask = maskLayer
facebookBtn.layer.masksToBounds = true
【问题讨论】:
-
这种类型的按钮设计可以使用分段控制。它易于使用和自定义。请看一下。
-
在这个问题中,您希望为两个按钮提供外角,以便您可以使用其默认的cornerRadius 属性来提供。
-
@JeckyModi 他不能给出默认的圆角半径,否则按钮会在它们相互接触的地方拐弯。
-
他扩展了 topCorner 和 bottomCorner 以便它可以根据需要为按钮提供角落? @dahiya_boy
-
@dahiya_boy 我真的建议他在这种情况下使用段控制
标签: ios iphone xcode swift3 uibutton