UIBezierPath 畫虛線功能

API
/**
* pattern: 虛線的長度組成
* count: 虛線的長度組成的個數(shù)
* phase: 忽略多少長度
*/
- (void)setLineDash:(nullable const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase;
Code
- (void)drawRect:(CGRect)rect {
    [[UIColor purpleColor] set];
    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:self.center radius:80 startAngle:M_PI endAngle:2*M_PI  clockwise:YES];
    CGFloat lengths[2] = { 2, 5 };
    [path setLineDash:lengths count:2 phase:0];
    path.lineWidth = 10;
    [path stroke];
}
效果
D152C560-105A-4DF4-9198-7964B55A13E6.png
讓虛線動起來
Code
- (instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor whiteColor];
        CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)];
        [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
        
    }
    return self;
}

- (void)update{
    self.phase -= 0.25;
}

- (void)setPhase:(CGFloat)phase{
    _phase = phase;
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect {
    
    [[UIColor purpleColor] set];
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(100, 100, 100, 100)];
    CGFloat lengths[2] = { 10, 5 };
    [path setLineDash:lengths count:2 phase:_phase];
    path.lineWidth = 3;
    [path stroke];
}
效果
line.gif
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容