【发布时间】:2018-01-28 16:26:14
【问题描述】:
为了使UIButton 的左下角变圆,我使用了code from this answer 并修改了这一行:borderLayer.strokeColor = GenerateShape.UIColorFromHex(0x989898, alpha: (1.0-0.3)).CGColor b/c 它不起作用。
但是,UIButton 的左边框不是圆角的。如何解决?
代码
button.frame = CGRect(x: 0, y: 0, width: 0.5*popUpView.frame.width, height: 0.25*popUpView.frame.height)
button.layer.borderWidth = 3
button.roundBtnCorners(roundedCorners, radius: cornerRadius)
extension UIButton{
// Round specified corners of button
func roundBtnCorners(_ corners:UIRectCorner, radius: CGFloat)
{
let borderLayer = CAShapeLayer()
borderLayer.frame = self.layer.bounds
borderLayer.strokeColor = UIColor(red: 168/266, green: 20/255, blue: 20/255, alpha: 0.7).cgColor
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.lineWidth = 1.0
let path = UIBezierPath(roundedRect: self.bounds,
byRoundingCorners: corners,
cornerRadii: CGSize(width: radius, height: radius))
borderLayer.path = path.cgPath
self.layer.addSublayer(borderLayer);
}
}
【问题讨论】:
-
为什么不直接改变 layer.cornerRadius 属性呢?现在行为是正常的,你的 UIButton 必须被裁剪到 superView 的边界,并且没有在 UIButton 上应用任何cornerRadius。
-
@SwiftRabbit 我只想圆 UIButton 的左下角,这就是原因
标签: ios swift uibutton uibezierpath