设置渐变色的border

2019-08-20  本文已影响0人  王欣12138
- (void)userIconSetBorder {
    UIImageView *gCircle = [[UIImageView alloc] initWithFrame:CGRectMake(0, self.iconBtn.centerY, 95, 95)];
    gCircle.image = [UIImage imageNamed:@"bgheadview"];
    [self.view addSubview:gCircle];
    gCircle.centerY = self.iconBtn.centerY +kNavHeight -20;
    gCircle.centerX = kLastWindow.centerX;
    CGFloat lineWidth = 1;
    CAShapeLayer *wavelinelayer = [self generateShapeLayerWithLineWidth:lineWidth];
    CGPoint center = CGPointMake(gCircle.width/2, gCircle.height/2);
    CGFloat radius= 45;
    UIBezierPath *circlePath = [self generateBezierPathWithCenter:center radius:radius];
    wavelinelayer.path = circlePath.CGPath;
    gCircle.layer.mask = wavelinelayer;
}

- (CAShapeLayer *)generateShapeLayerWithLineWidth:(CGFloat)lineWidth {
    CAShapeLayer *waveline = [CAShapeLayer layer];
    waveline.lineCap = kCALineCapButt;
    waveline.lineJoin = kCALineJoinRound;
    waveline.strokeColor = [UIColor redColor].CGColor;
    waveline.fillColor = [[UIColor clearColor] CGColor];
    waveline.lineWidth = lineWidth;
    waveline.backgroundColor = [UIColor clearColor].CGColor;
    return waveline;
}

- (UIBezierPath *)generateBezierPathWithCenter:(CGPoint)center radius:(CGFloat)radius {
    UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:0 endAngle:2 *M_PI clockwise:NO];
    return circlePath;
}
上一篇 下一篇

猜你喜欢

热点阅读