美文网首页
iOS 设置渐变色圆角边框

iOS 设置渐变色圆角边框

作者: _Miyo | 来源:发表于2022-05-05 09:55 被阅读0次

iOS 设置渐变色圆角边框

*如下需求图,使用背景图片很难达到很好的效果


WX20220505-101437.png

*就需要使用代码来绘制渐变色圆角边框

/**
 *  给view设置渐变色圆角边框
 *
 *  @param view            : 要添加边框的view
 *  @param cornerRadius    : 圆角大小
 *  @param lineWidth       : 线宽
 *  @param colors          : 渐变颜色数组
 *  colors : @[(__bridge id)RGB_COLOR(117, 48,227, 1).CGColor,(__bridge id)RGB_COLOR(225, 175, 204, 1).CGColor]
 */
- (void)addGradientLayerWithCorner:(UIView *)view withCornerRadius:(float)cornerRadius withLineWidth:(float)lineWidth withColors:(NSArray *)colors{
    
    CGRect mapRect = CGRectMake(lineWidth/2, lineWidth/2, view.frame.size.width-lineWidth, view.frame.size.height-lineWidth);
    CAGradientLayer * gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = CGRectMake(0, 0, view.frame.size.width, view.frame.size.height);
    gradientLayer.colors = colors;
    gradientLayer.startPoint = CGPointMake(0, 0.5);
    gradientLayer.endPoint = CGPointMake(1, 0.5);
    gradientLayer.cornerRadius = mapRect.size.height/2;
    
    CAShapeLayer *maskLayer = [CAShapeLayer layer];
    maskLayer.lineWidth = lineWidth;
    UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:mapRect cornerRadius:mapRect.size.height/2];
    maskLayer.path = path.CGPath;
    maskLayer.fillColor = [UIColor clearColor].CGColor;
    maskLayer.strokeColor = [UIColor blueColor].CGColor;
    
    gradientLayer.mask = maskLayer;
    [view.layer addSublayer:gradientLayer];
}

相关文章

网友评论

      本文标题:iOS 设置渐变色圆角边框

      本文链接:https://www.haomeiwen.com/subject/gsynyrtx.html