<p>iOS開發可以很方便的借助UIView圖層屬性layer的三個屬性cornerRadius、borderWidth、borderColor實現UIView的描邊、圓角效果,但這遠遠滿足不了美工對藝術無止境的追求,只一個角圓角、兩個角圓角...不過實現這種效果并不難,沒必要跟美工死磕,人家也不容易。= =#</p>
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
view.backgroundColor = [UIColor redColor];
[self.view addSubview:view];
// 創建路徑,路徑決定圓角效果
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
cornerRadii:CGSizeMake(10, 10)];
// 創建圖層,把路徑轉化為圖層效果
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.path = maskPath.CGPath;
maskLayer.frame = view.bounds;
// 把擁有圓角效果的圖層添加到視圖上實現圓角效果
view.layer.mask = maskLayer;
代碼中通過UIBezierPath
創建路徑時可以通過參數byRoundingCorners
指定需要圓角的角,可以傳一個,也可以按|
分隔傳多個,角的類型為UIRectCorner
,可選的值如下:
- UIRectCornerTopLeft
- UIRectCornerTopRight
- UIRectCornerBottomLeft
- UIRectCornerBottomRight
- UIRectCornerAllCorners