1.渐变色
UIColor *dcolor = [UIColor colorWithRed:255/255.0 green:140/255.0 blue:0/255.0 alpha:1];
UIColor *lcolor = [UIColor colorWithRed:148/255.0 green:0/255.0 blue:211/255.0 alpha:1];
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 300,50)];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = @[(__bridge id)dcolor.CGColor, (__bridge id)lcolor.CGColor];
gradientLayer.locations = @[@0.1,@0.9,@1.0];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1.0, 0);
gradientLayer.cornerRadius = 8;
gradientLayer.frame = CGRectMake(0, 0, view.frame.size.width, view.frame.size.height) ;
[view.layer insertSublayer:gradientLayer atIndex:0];
2.圆角和边框(虚线边框)添加
//圆角
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:backRect cornerRadius:4];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
maskLayer.frame = backRect;
//边框
CAShapeLayer *borderLayer = [CAShapeLayer layer];
borderLayer.frame = backRect;
borderLayer.lineWidth = 1.f;
borderLayer.strokeColor = [UIColor colorWithRed:235/255.0 green:235/255.0 blue:235/255.0 alpha:1].CGColor;
borderLayer.fillColor = [UIColor clearColor].CGColor;
//若是虚线则设置间隔
borderLaye.lineDashPattern = @[@4, @2];
maskLayer.path = maskPath.CGPath;
borderLayer.path = maskPath.CGPath;
[view.layer addSublayer:borderLayer];
view.layer.mask = maskLayer;
3.阴影及(光栅化)
//阴影
_bubbleView.layer.shadowColor = [UIColor blackColor].CGColor;
_bubbleView.layer.shadowRadius = 2;
_bubbleView.layer.shadowOffset = CGSizeMake(2, 2);
_bubbleView.layer.shadowOpacity = 0.35;//阴影透明度,默认0明度,默认0
//光栅化(会导致视图不清晰),我用的不多
self.btmBackView.layer.shouldRasterize = YES;
//设置阴影图形,减少离屏渲染时间(性能主要提升点)
UIBezierPath *path = [UIBezierPath bezierPathWithRect:backView.bounds];
self.backView.layer.shadowPath = path.CGPath;
self.backView.layer.opaque = YES; //当前UIView是否不透明
网友评论