gpt4 book ai didi

swift - UIBezierPath roundedRect - 改变角的颜色

转载 作者:行者123 更新时间:2023-11-28 15:50:27 25 4
gpt4 key购买 nike

我有一个简单的圆角矩形

override func draw(_ rect: CGRect) {
let path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.allCorners, cornerRadii: CGSize(width: cornerSize, height: cornerSize))
fillColor.setFill()
path.fill()
//fillColor is set to UIColor.black
//cornerSize is set to 20
}

但是边角是白色的。如果我在 UIBuilder 中将背景颜色设置为清除颜色,则圆角矩形会变成带有尖角的矩形。我试着用矩形创建一个椭圆,并用清晰的颜色填充它。这也没有用。也许答案微不足道,但我绝对一无所知。

enter image description here

最佳答案

您的代码可以正常工作。如果当 View 背景颜色清晰时它绘制纯黑色,那么这可能意味着您在贝塞尔 View 后面有一个相同大小的黑色 View 。您可以通过将贝塞尔曲线的填充颜色更改为黑色以外的颜色来对此进行测试。

如果使用@IBDesignable 和@IBInspectable 关键字,调试起来会容易得多:

@IBDesignable class BezierView: UIView {

@IBInspectable var fillColor = UIColor.black

@IBInspectable var cornerRadius = 20.0

override func draw(_ rect: CGRect) {
let path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.allCorners, cornerRadii: CGSize(width: cornerRadius, height: cornerRadius))
fillColor.setFill()
path.fill()
}

然后它会在 Storyboard中绘制 View ,您可以在 View 检查器中编辑填充颜色和角半径。

关于swift - UIBezierPath roundedRect - 改变角的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42340394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com