【问题标题】:unable to create exact path无法创建确切的路径
【发布时间】:2017-04-18 06:09:20
【问题描述】:

我想创建这样的图像视图。

使用贝塞尔路径,我尝试的代码是

    let path = UIBezierPath()

    path.move(to: CGPoint(x: myImage.frame.size.width - 10 , y: myImage.frame.size.height))

    path.addLine(to: CGPoint(x: myImage.frame.size.width - 20 , y: 20))

    path.addLine(to: CGPoint(x: myImage.frame.size.width, y: 20))

    path.addArc(withCenter: CGPoint(x: myImage.frame.size.width/2, y: myImage.frame.size.height/2), radius: myImage.frame.size.width/2, startAngle:-CGFloat(M_PI_2), endAngle: CGFloat(M_PI_2), clockwise: false)

   //        

    path.move(to: CGPoint(x: myImage.frame.size.width/2, y: myImage.frame.size.height))

    path.close()

    UIColor.red.setFill()

    path.stroke()

    path.reversing()

【问题讨论】:

    标签: swift swift3 cashapelayer


    【解决方案1】:

    代码

    let bezierPath = UIBezierPath()
    bezierPath.move(to: CGPoint(x: 153.5, y: 137.5))
    bezierPath.addCurve(to: CGPoint(x: 63.5, y: 196.5), controlPoint1: CGPoint(x: 130.5, y: 137.5), controlPoint2: CGPoint(x: 63.5, y: 120.37))
    bezierPath.addCurve(to: CGPoint(x: 63.5, y: 310.5), controlPoint1: CGPoint(x: 63.5, y: 260.99), controlPoint2: CGPoint(x: 63.5, y: 218.5))
    bezierPath.addCurve(to: CGPoint(x: 88.5, y: 352.5), controlPoint1: CGPoint(x: 63.5, y: 333.5), controlPoint2: CGPoint(x: 73.5, y: 347.5))
    bezierPath.addCurve(to: CGPoint(x: 218.5, y: 360.5), controlPoint1: CGPoint(x: 137.23, y: 368.74), controlPoint2: CGPoint(x: 218.5, y: 360.5))
    bezierPath.addCurve(to: CGPoint(x: 240.5, y: 309.5), controlPoint1: CGPoint(x: 218.5, y: 360.5), controlPoint2: CGPoint(x: 240.5, y: 337))
    bezierPath.addCurve(to: CGPoint(x: 222.5, y: 249.5), controlPoint1: CGPoint(x: 240.5, y: 282), controlPoint2: CGPoint(x: 222.5, y: 249.5))
    bezierPath.addCurve(to: CGPoint(x: 240.5, y: 196.5), controlPoint1: CGPoint(x: 222.5, y: 249.5), controlPoint2: CGPoint(x: 240.5, y: 224.5))
    bezierPath.addCurve(to: CGPoint(x: 218.5, y: 137.5), controlPoint1: CGPoint(x: 240.5, y: 168.5), controlPoint2: CGPoint(x: 218.5, y: 137.5))
    bezierPath.addCurve(to: CGPoint(x: 153.5, y: 137.5), controlPoint1: CGPoint(x: 218.5, y: 137.5), controlPoint2: CGPoint(x: 201.5, y: 137.5))
    bezierPath.close()
    UIColor.gray.setFill()
    bezierPath.fill()
    UIColor.black.setStroke()
    bezierPath.lineWidth = 1
    bezierPath.stroke()
    

    输出

    【讨论】:

    • 不是很有用,因为它没有使用imageView 框架
    • 用创建的路径掩盖你的图像视图。
    猜你喜欢
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2019-09-04
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多