關(guān)于這個問題妒貌,大家可能在網(wǎng)上看過其它的博客,通常的做法如下:
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)];
view2.backgroundColor = [UIColor redColor];
[self.view addSubview:view2];
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view2.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view2.bounds;
maskLayer.path = maskPath.CGPath;
view2.layer.mask = maskLayer;
其中,
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
指定了需要成為圓角的角。該參數(shù)是UIRectCorner類型的,可選的值有:
* UIRectCornerTopLeft
* UIRectCornerTopRight
* UIRectCornerBottomLeft
* UIRectCornerBottomRight
* UIRectCornerAllCorners
從名字很容易看出來代表的意思潦蝇,使用“|”來組合就好了。
這種做法深寥,只能讓沒有設(shè)置邊框?qū)挾鹊腢IView個別角為圓角,如果這個view設(shè)置了view2.borderwidth這個屬性贤牛,那么 我們 最好不要用這種方法來設(shè)置個別圓角了惋鹅,貝塞爾的方式不會讓邊框也變成圓角,效果就是在 圓角處出現(xiàn)稀釋的效果殉簸,看著像斷了一樣闰集,非常不好看。
至于出現(xiàn)這種情況般卑,最好的方式就是找美工做個圖武鲁,也許會有更好的方法,博主正在研究蝠检,歡迎廣大iOS開發(fā)愛好者沐鼠,如果有更好的方法,歡迎評論叹谁。感謝K撬蟆!焰檩!