2015-10-30 15 views
5

Tôi có đoạn mã này:CAShapeLayer strokeStart và strokeEnd vị trí

let arcPath = UIBezierPath(ovalInRect: CGRectMake(0, 0, frame.width, frame.height)) 

    circleLayer = CAShapeLayer() 
    circleLayer.path = arcPath.CGPath 
    circleLayer.fillColor = UIColor.clearColor().CGColor 
    circleLayer.strokeColor = UIColor.blueColor().CGColor 
    circleLayer.lineWidth = 5.0; 

    circleLayer.strokeStart = 0 
    circleLayer.strokeEnd = 0.7 

mà kết quả như thế này:

enter image description here

Như bạn có thể thấy, hồ quang bắt đầu ở phía bên phải của vòng tròn. Tôi muốn vẽ vòng cung bắt đầu từ đỉnh. Tôi sẽ làm như thế nào? Tôi có phải xoay toàn bộ điều bằng -90 độ để hoàn thành những gì tôi đang cố gắng làm không?

Cảm ơn.

Trả lời

10

Bạn có thể tạo ra các con đường như thế này

let bezierPath = UIBezierPath(arcCenter:CGPointMake(100,100), radius:40, startAngle: CGFloat(M_PI_2) * 3.0, endAngle:CGFloat(M_PI_2) * 3.0 + CGFloat(M_PI) * 2.0, clockwise: true) 

SceenShot

+0

Tính năng này hoạt động. Cảm ơn bạn – gasparuff

0

Tôi nghĩ rằng trừ 90 * M_PI/180 từ ban đầu của bạn startAngleendAngle là đủ cho nhiệm vụ này.

Thiên Chúa biết tại sao Apple quyết định xử lý 90 độ ở vị trí hàng đầu.

Các vấn đề liên quan