我有 2 个已知的 CGPoints,我想在这两个点之间制作一条锯齿状的之字形线。我知道点之间的距离,以及大约要制作多少条线,这是根据距离动态设置的。
任何指导将不胜感激。
最佳答案
以下是我最近为实现此效果而编写的 swift 代码示例。此示例将 View 作为输入并对其应用之字形效果。您可以引用代码创建两个点的效果。
func applyZigZagEffect(givenView: UIView) {
let width = givenView.frame.size.width
let height = givenView.frame.size.height
let givenFrame = givenView.frame
let zigZagWidth = CGFloat(7)
let zigZagHeight = CGFloat(5)
let yInitial = height-zigZagHeight
var zigZagPath = UIBezierPath()
zigZagPath.moveToPoint(CGPointMake(0, 0))
zigZagPath.addLineToPoint(CGPointMake(0, yInitial))
var slope = -1
var x = CGFloat(0)
var i = 0
while x < width {
x = zigZagWidth * CGFloat(i)
let p = zigZagHeight * CGFloat(slope)
let y = yInitial + p
let point = CGPointMake(x, y)
zigZagPath.addLineToPoint(point)
slope = slope*(-1)
i++
}
zigZagPath.addLineToPoint(CGPointMake(width, 0))
var shapeLayer = CAShapeLayer()
shapeLayer.path = zigZagPath.CGPath
givenView.layer.mask = shapeLayer
}
您可以调整 zigZagWidth 和 zigZagHeight 以获得您选择的效果。
关于ios - 如何用 UIBezierPath 绘制锯齿线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26520596/