iOS - 如何去除 UIButton 边框颜色?
iOS - How to Remove UIButton border color?
当前按钮设置
button.backgroundColor = UIColor.brown
button.layer.cornerRadius = 60/2
button.layer.borderWidth = 5
button.layer.borderColor = UIColor.white.cgColor
看起来像上面的代码
问题是,外面有一个非常细的边框,如下图所示。
边框颜色与您设置的backgroundColor
相同。
将 backgroundColor
更改为红色会将底部边框更改为红色。
我设置了button.layer.shadowColor
。
按钮大小为60,宽/高使用anchor设置。
仍在搜索中。但只有 borderColor 设置。
这令人沮丧。请寻求帮助。为什么会这样?
将 shadowOpacity
设置为零应该可以解决您的问题。
button.layer.shadowOpacity = 0.0;
您可以通过这种方式实现 UIView 扩展,
extension UIView {
func roundCorners(_ corners: UIRectCorner, radius: CGFloat, borderColor: UIColor, borderWidth: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.mask = mask
let borderPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let borderLayer = CAShapeLayer()
borderLayer.path = borderPath.cgPath
borderLayer.lineWidth = borderWidth
borderLayer.strokeColor = borderColor.cgColor
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.frame = self.bounds
self.layer.addSublayer(borderLayer)
}
}
这样用,
button.backgroundColor = UIColor.brown
button.roundCorners([.allCorners], radius: 30.0, borderColor: UIColor.white, borderWidth: 10.0)
这将显示这样的输出,
上图包含带有白色边框颜色的按钮。
这将是您应用程序中所有按钮的通用解决方案。
如有任何疑问,请告诉我。
您必须裁剪图层的边界。
button.layer.masksToBounds = true
我知道为什么按钮周围有一条线,我以前遇到过。实际上这条线是边框和背景之间的间隙,button.layer.border
没有画正确。你可以试试自己画个边框,盖在按钮上。
你必须剪掉边界并添加一个空白标题
button.clipsToBounds = true
button.setTitle(" ", for: .normal)
当前按钮设置
button.backgroundColor = UIColor.brown
button.layer.cornerRadius = 60/2
button.layer.borderWidth = 5
button.layer.borderColor = UIColor.white.cgColor
看起来像上面的代码 问题是,外面有一个非常细的边框,如下图所示。
边框颜色与您设置的backgroundColor
相同。
将 backgroundColor
更改为红色会将底部边框更改为红色。
我设置了button.layer.shadowColor
。
按钮大小为60,宽/高使用anchor设置。
仍在搜索中。但只有 borderColor 设置。 这令人沮丧。请寻求帮助。为什么会这样?
将 shadowOpacity
设置为零应该可以解决您的问题。
button.layer.shadowOpacity = 0.0;
您可以通过这种方式实现 UIView 扩展,
extension UIView {
func roundCorners(_ corners: UIRectCorner, radius: CGFloat, borderColor: UIColor, borderWidth: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.mask = mask
let borderPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let borderLayer = CAShapeLayer()
borderLayer.path = borderPath.cgPath
borderLayer.lineWidth = borderWidth
borderLayer.strokeColor = borderColor.cgColor
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.frame = self.bounds
self.layer.addSublayer(borderLayer)
}
}
这样用,
button.backgroundColor = UIColor.brown
button.roundCorners([.allCorners], radius: 30.0, borderColor: UIColor.white, borderWidth: 10.0)
这将显示这样的输出,
上图包含带有白色边框颜色的按钮。
这将是您应用程序中所有按钮的通用解决方案。
如有任何疑问,请告诉我。
您必须裁剪图层的边界。
button.layer.masksToBounds = true
我知道为什么按钮周围有一条线,我以前遇到过。实际上这条线是边框和背景之间的间隙,button.layer.border
没有画正确。你可以试试自己画个边框,盖在按钮上。
你必须剪掉边界并添加一个空白标题
button.clipsToBounds = true
button.setTitle(" ", for: .normal)