Swift中如何为矩形UIView添加虚线边框
虚线边框pattern参数说明
你代码中pattern参数对应CAShapeLayer的lineDashPattern属性,用于定义虚线的绘制循环规则,具体规则如下:
- 参数是
[NSNumber]类型的数组,数组内每一个值的单位为逻辑点(Point),不需要手动适配不同屏幕的像素密度 - 数组值按照「实线段长度 → 空白段长度 → 实线段长度 → 空白段长度……」的顺序循环生效
- 当数组长度为奇数时,系统会自动将数组复制一份拼接为偶数长度后生效,例如传入
[4]等价于传入[4,4],最终效果为4点实线、4点空白循环 - 传入
nil时会关闭虚线效果,绘制普通实线边框
常见使用示例
// 短虚线:3pt实线 + 1pt空白循环 targetView.addLineDashedStroke(pattern: [3, 1], radius: 10, color: UIColor.systemGray.cgColor) // 圆点虚线:1pt实线 + 5pt空白循环 targetView.addLineDashedStroke(pattern: [1, 5], radius: 10, color: UIColor.systemGray.cgColor) // 长短交替虚线:5pt实线 + 2pt空白 + 1pt实线 + 2pt空白循环 targetView.addLineDashedStroke(pattern: [5, 2, 1, 2], radius: 10, color: UIColor.systemGray.cgColor) // 普通实线边框 targetView.addLineDashedStroke(pattern: nil, radius: 10, color: UIColor.systemGray.cgColor)
内容的提问来源于stack exchange,提问作者Kshitij Negi
相关产品推荐
相关产品推荐

