代碼片段-實現UIView某幾個角的圓角效果

<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

原文

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

推薦閱讀更多精彩內容