swift2 - Scaleable UIBezier in Swift 3 -


i'm trying design scaleable uibezier.

this swift code:

@ibdesignable class animatedringview: uiview {        override func draw(_ rect: cgrect) {         //// color declarations         let strokecolor = uicolor(red: 1.000, green: 0.706, blue: 0.004, alpha: 1.000)          //// bezier drawing         let bezierpath = uibezierpath()         bezierpath.move(to: cgpoint(x: 48.93, y: 266.07))         bezierpath.addcurve(to: cgpoint(x: 48.93, y: 53.93), controlpoint1: cgpoint(x: -9.64, y: 207.49), controlpoint2: cgpoint(x: -9.64, y: 112.51))         bezierpath.addcurve(to: cgpoint(x: 261.07, y: 53.93), controlpoint1: cgpoint(x: 107.51, y: -4.64), controlpoint2: cgpoint(x: 202.49, y: -4.64))         bezierpath.addcurve(to: cgpoint(x: 261.07, y: 266.07), controlpoint1: cgpoint(x: 319.64, y: 112.51), controlpoint2: cgpoint(x: 319.64, y: 207.49))         bezierpath.addline(to: cgpoint(x: 261.07, y: 266.07))         bezierpath.linecapstyle = .round;          bezierpath.linejoinstyle = .round;          strokecolor.setstroke()         bezierpath.linewidth = 10         bezierpath.stroke()       }  } 

this result:

enter image description here


my problem: save time, created uibezierpath paintcode:

enter image description here

and can see above, have width , height uibezierpath, however, code displayed points of uibezierpath ...

how can create size variable assign value via code (or inspector) automatically identify points of uibezierpath?

is possible? need help!

given creating circular arc, using bezier curves purpose seems overkill.

with uibezierpath, can use function:

func addarcwithcenter(_ center: cgpoint, radius radius: cgfloat, startangle startangle: cgfloat, endangle endangle: cgfloat, clockwise clockwise: bool)

and set radius, along requisite start , end angles.

if must use cubic béziers purpose, should use magic number kappa equals 0.5522847498, , control points circle built out of cubic béziers.

i have placed small demo of i'm describing on web site at:

http://www.trilithon.com/download/animatedringview.zip

hope helps.


Comments