指定UIView的特定角為圓角


  • 如果需要將UIView的4個角全部設為圓角,做法相當簡單:
  1. 純代碼只需設置其Layer的cornerRadius屬性即可(項目需要使用QuartzCore框架)
  1. xib上只需如圖一那樣設置就行了
圖一
  • 若要指定某幾個角(小于4個)為圓角而別的不變時,這種方法就不好用了。對于這種情況,Stackoverflow上提供了幾種解決方案。其中最簡單優雅的方案,就是使用UIBezierPath。下面給出一段示例代碼。
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)];
view.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         = view.bounds;
maskLayer.path          = maskPath.CGPath;
view.layer.mask         = maskLayer;

其中byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
指定了需要成為圓角的角。該參數是UIRectCorner類型的,可選的值有:

  • UIRectCornerTopLeft
  • UIRectCornerTopRight
  • UIRectCornerBottomLeft
  • UIRectCornerBottomRight
  • UIRectCornerAllCorners

從名字很容易看出來代表的意思,使用“|”來組合就好了。


再一次感謝您花費時間閱讀這篇文章!

微博: @Danny_呂昌輝
博客: SuperDanny

2015 年 08月 20日

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容