我正在尝试将UIBezierPath
数组作为点网格显示。点的间距将相对于UIView
的大小,类似于:(bounds.UIView / 10)
,以使每边的间距为10
基本上我有两个问题:
1)如何使用UIBezierPath
划分单个点?
2)如何创建一个点数组并在UIView
上对它们进行描述。
答案 0 :(得分:0)
以下是 Swift 3 :
中的示例func addDashedLine(layer: CALayer, dotSize: CGFloat) {
let p0 = CGPoint(x: 0, y: layer.bounds.height/2)
let p1 = CGPoint(x: layer.bounds.width, y: layer.bounds.height/2)
let path = UIBezierPath()
path.move(to:p0)
path.addLine(to:p1)
path.stroke()
let stepLength = Float(layer.bounds.width/10.0)
let dashPattern = [NSNumber(value: 0.001), NSNumber(value: stepLength)]
let shapeLayer = CAShapeLayer()
shapeLayer.frame = layer.bounds
shapeLayer.strokeColor = UIColor.red.cgColor
shapeLayer.lineWidth = dotSize
shapeLayer.lineJoin = kCALineJoinRound
shapeLayer.lineCap = kCALineCapRound
shapeLayer.lineDashPattern = dashPattern
shapeLayer.lineDashPhase = dotSize
shapeLayer.path = path.cgPath
layer.addSublayer(shapeLayer)
}
此示例使用简单路径绘制水平线。如果你需要绘制一个具有固定点数的线,你需要首先计算它的长度,然后除以你想要绘制的点数。
用法:
override func viewDidLoad() {
super.viewDidLoad()
addDashedLine(layer: view.layer, dotSize: 3)
}
<强>输出:强>