软件工程师在传统观念里可能就是写代码,完成项目需求。但对我而言,作为一名互联网从业者,不应该只是掌握一门技能,在平时的工作中也让自己充当产品经理,UI设计等角色,毕竟牛逼的用户体验是每个人喜欢的,不妨放开思路,尝试着做些不一样的东西。
在一些项目中,可能希望有这样的效果,某个view显示的是渐变风格,并且可能不是规则的矩形或者圆形,如何实现这种特效,下面小编给大家介绍一下这个方法,希望能帮到大家。
1.实现自定义圆角
-(void)setCustomCorners:(UIView *)view
{
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(10,10)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;
}
其中,UIRectCornerTopRight | UIRectCornerBottomRight表示右上右下为圆角,CGSizeMake(10,10)表示圆角度数为10,可以根据项目需求更改这两个值。
2.实现渐变
-(void)setCustomGradientLayer:(UIView *)view
{
CAGradientLayer *gradientLayer = [[CAGradientLayer alloc] init];
gradientLayer.colors = @[(__bridge id)[UIColor colorWithRed:73.0f/255.0f green:148.0f/255.0f blue:230.0f/255.0f alpha:0.5].CGColor,(__bridge id)[UIColor blueColor].CGColor];
gradientLayer.startPoint = CGPointMake(0.5, 0);
gradientLayer.endPoint = CGPointMake(0.5, 1);
gradientLayer.frame = CGRectMake(0, 0, CGRectGetWidth(self.colorBackgroundView.frame), CGRectGetHeight(self.colorBackgroundView.frame));
[view.layer addSublayer:gradientLayer];
}
其中,gradientLayer.colors表示设定渐变的颜色数组,可以自定义;gradientLayer.startPoint ,gradientLayer.endPoint分别设定渐变的起始和结束位置,范围为0到1。