美文网首页
iOS UIView

iOS UIView

作者: Joymerry | 来源:发表于2020-03-14 10:53 被阅读0次

1.背景颜色渐变色渲染

// 渲染背景
    CAGradientLayer *gl = [CAGradientLayer layer];
    gl.frame = titleView.bounds;
    gl.startPoint = CGPointMake(1, 0.3215215802192688);
    gl.endPoint = CGPointMake(0, 0.3252418041229248);
    gl.colors = @[(__bridge id)[UIColor colorWithRed:255/255.0 green:164/255.0 blue:6/255.0 alpha:1.0].CGColor,(__bridge id)[UIColor colorWithRed:254/255.0 green:59/255.0 blue:83/255.0 alpha:1.0].CGColor];
    gl.locations = @[@(0),@(1.0f)];
    [titleView.layer addSublayer:gl];

这种方式不能直接在当前View(titleView)添加组件,组件不能正常显示,同样会被该方法渲染掉。推荐使用一个backView做渲染背景,组件放在底部View上,且在渲染背景backView上方。

2.设置部分圆角

UIButton * button =[UIButton buttonWithType:UIButtonTypeSystem];
[self.view addSubview:button];//一定要先添加到视图上
button.frame=CGRectMake(100, 100, 100, 40);
button.backgroundColor=[UIColor blueColor];

UIBezierPath *maskPath=[UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners:UIRectCornerTopRight|UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer=[[CAShapeLayer alloc]init];
maskLayer.frame=button.bounds;
maskLayer.path=maskPath.CGPath;
button.layer.mask=maskLayer;

设置圆角会跟动态高度布局出现问题,使用时请谨慎使用。

3.绘制虚线

// 调用方法
[self drawDashLine:self.rightImaginaryLineView lineLength:5 lineSpacing:5 lineColor:RGB(237, 237, 237)];

/**
** lineView:      需要绘制成虚线的view
** lineLength:    虚线的宽度
** lineSpacing:    虚线的间距
** lineColor:      虚线的颜色
**/
- (void)drawDashLine:(UIView *)lineView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *)lineColor{
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    [shapeLayer setBounds:lineView.bounds];
    [shapeLayer setPosition:CGPointMake(CGRectGetWidth(lineView.frame) / 2, CGRectGetHeight(lineView.frame))];
    [shapeLayer setFillColor:[UIColor clearColor].CGColor];

    //  设置虚线颜色
    [shapeLayer setStrokeColor:lineColor.CGColor];

    //  设置虚线宽度
    [shapeLayer setLineWidth:CGRectGetHeight(lineView.frame)];
    [shapeLayer setLineJoin:kCALineJoinRound];

    //  设置线宽,线间距
    [shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithInt:lineLength],[NSNumber numberWithInt:lineSpacing], nil]];

    //  设置路径
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, 0, 0);
    CGPathAddLineToPoint(path, NULL,CGRectGetWidth(lineView.frame), 0);
    [shapeLayer setPath:path];
    CGPathRelease(path);

    //  把绘制好的虚线添加上来
    [lineView.layer addSublayer:shapeLayer];
}

4.绘制单边边框

// 单边边框(下边)
CALayer * bottomBorder = [CALayer layer];
float height = self.commentTextView.height;
float width = self.commentTextView.width;
bottomBorder.frame = CGRectMake(0, height-1, width, 0.5);
bottomBorder.backgroundColor = RGB(240, 240, 240).CGColor;
[self.commentTextView.layer addSublayer:bottomBorder];

相关文章

网友评论

      本文标题:iOS UIView

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