How to use CoreAnimation to animate a circle like a clock countdown

后端 未结 1 1380

I wish to have a time countdown indicator just like a circle to start from a slice of arch to a full circle.

I have tried several ways, both ended up with the arch t

1条回答
  •  星月不相逢
    2021-01-07 08:04

    SetNeedsDisplay when you change one of the angles, you can do some optimizations to only redraw the affected area. Put something like this into your draw function of your view. Good Luck

    CGContextRef myContext = UIGraphicsGetCurrentContext();
    CGPoint center = { self.bounds.size.width * 0.5f, self.bounds.size.height * 0.5f };
    
    
    CGContextClearRect(myContext, rect);
    
    CGContextMoveToPoint(myContext, center.x, center.y);
    // start and end are in radians.
    CGContextAddArc(myContext, center.x, center.y, MIN(self.frame.size.width,self.frame.size.height)*0.5f, _startAngle, _endAngle, NO);
    CGContextAddLineToPoint(myContext, center.x, center.y);
    CGContextClip(myContext);
    
    CGContextSetFillColorWithColor(myContext,[UIColor redColor].CGColor);
    CGContextFillRect(myContext, self.bounds);
    

    0 讨论(0)
提交回复
热议问题