一:任意圓角的切割
對于UIView我們可以通過設(shè)置clipsToBounds和layer.cornerRadius屬性對UIView切圓角誓沸。
但是最近在項目中遇到碰到了一個只需要切兩個角為圓角的View车酣。特將方法整理如下:
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *baseView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.baseView.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(20, 20)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
maskLayer.frame = self.baseView.bounds;
maskLayer.path = maskPath.CGPath;
self.baseView.layer.mask = maskLayer;
}
@end
頁面效果如下:
可以看到已經(jīng)將頁面的下面的兩個角給切為了20為半徑的圓角。此過程比較重要的是貝塞爾曲線的創(chuàng)建
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.baseView.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(20, 20)];
參數(shù)1:決定了切割的范圍
參數(shù)2:決定了切割哪些角
參數(shù)3:決定了切角的半徑缭保。
二:UIView漸變色的生成
項目中進行漸變色效果的實現(xiàn)可以采用UIImageView加載漸變背景圖片。但是在某些時候可能沒有漸變的背景圖片坤学。在這種情況下我們可以對UIView屬性進行設(shè)置皱坛。代碼來實現(xiàn)漸變色
代碼如下:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.baseView.bounds;
gradientLayer.cornerRadius = 4;
gradientLayer.colors = @[(id)[UIColor redColor].CGColor,(id)[UIColor yellowColor].CGColor];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1, 0);
[self.baseView.layer addSublayer:gradientLayer];
頁面截圖如下代碼分析