iOS開發中,常常由于需求,而需要圓角的樣式.如果4個角都是圓角的,還好說.一行兩行代碼就可以搞定.就是CAlayer.可是現在我想說下不規則的圓角.目前我還沒有找到更好的方法來畫圓角.希望有解決方法的朋友看到這篇文章,能交流學習下.
1 UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:sourceView.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerTopLeft cornerRadii:CGSizeMake(5, 5)];2 CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];3 maskLayer.frame = sourceView.bounds;4 maskLayer.path = maskPath.CGPath;5 sourceView.layer.mask = maskLayer;
號稱是最優雅的畫不定圓角視圖的方法.想畫哪個圓角就在bezierPathWithRoundedRect:byRoundingCorners: 方法中添加相應枚舉值就行了.如下圖(左側圖標的左圓角就是用這種方法切的.):

比如我這個方法中,畫了左側圖標的左上角和左下角的圓形.
當然這樣雖然代碼優雅,可實際效果并不是很好.cornerRadii的值設置大了以后,可以把自定義的組合視圖中,UITextField和UITextView視圖的邊框給切掉.慘不忍睹.我只能用遮蓋輸入框的方法,來隱藏掉輸入框的左側圓角.
| 
 
 | 
新聞熱點
疑難解答