Sha*_*man 4 calayer uiview ios swift
我有一个圆形,UIView并在其中添加了一条虚线描边。
,,,
var view = CAShapeLayer()
view.strokeColor = UIColor.red.cgColor
view.lineDashPattern = [2, 2]
view.frame = addphotoView.bounds
view.fillColor = nil
view.path = UIBezierPath(rect: addphotoView.bounds).cgPath
view.cornerRadius = 16
view.masksToBounds = true
addphotoView.layer.addSublayer(yourViewBorder)
Run Code Online (Sandbox Code Playgroud)
角落被抹去。
Moj*_*ini 13
你应该舍入Layers path。
像这样:
borderLayer.path = UIBezierPath(roundedRect: addphotoView.bounds, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: 16, height: 16)).cgPath
Run Code Online (Sandbox Code Playgroud)
您可以将所有这些逻辑移动到扩展中:
extension UIView {
@discardableResult
func addLineDashedStroke(pattern: [NSNumber]?, radius: CGFloat, color: CGColor) -> CALayer {
let borderLayer = CAShapeLayer()
borderLayer.strokeColor = color
borderLayer.lineDashPattern = pattern
borderLayer.frame = bounds
borderLayer.fillColor = nil
borderLayer.path = UIBezierPath(roundedRect: bounds, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: radius, height: radius)).cgPath
layer.addSublayer(borderLayer)
return borderLayer
}
}
Run Code Online (Sandbox Code Playgroud)
addphotoView.addLineDashedStroke(pattern: [2, 2], radius: 16, color: UIColor.gray.cgColor)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |