gpt4 book ai didi

ios - 如何使用 CAShapeLayer 创建圆角

转载 作者:技术小花猫 更新时间:2023-10-29 11:12:59 28 4
gpt4 key购买 nike

有没有办法给 CAShapeLayer 添加圆角?在我的例子中,我需要形状层通过 lineDashPattern 创建虚线边框。

Rounded corners with dashed line - incorrect

^ 注意虚线不是圆的

最佳答案

答案很简单。创建带圆角的贝塞尔曲线路径。

Swift 更新

view.clipsToBounds = true 
view.layer.cornerRadius = 10.0
let border = CAShapeLayer()
border.path = UIBezierPath(roundedRect:view.bounds, cornerRadius:10.0).cgPath
border.frame = view.bounds
border.fillColor = nil
border.strokeColor = UIColor.purple.cgColor
border.lineWidth = borderWidth * 2.0 // doubled since half will be clipped
border.lineDashPattern = [15.0]
view.layer.addSublayer(border)

objective-C

// (This old code assumes this is within a view with a custom property "border".)
self.clipsToBounds = YES;
self.layer.cornerRadius = 10.0;

self.border = [CAShapeLayer layer];
self.border.fillColor = nil;
self.border.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10.0].cgPath;
self.border.frame = self.bounds;

self.border.strokeColor = [UIColor purpleColor].CGColor;
self.border.lineWidth = borderWidth * 2; // double desired width as half will be clipped
self.border.lineDashPattern = @[@15];

[self.layer addSublayer:self.border];

Rounded corners with dashed line - correct

关于ios - 如何使用 CAShapeLayer 创建圆角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356821/

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