1. 程式人生 > >為UIView任意角設定圓角

為UIView任意角設定圓角

圓角在蘋果的世界時隨處可見的。為檢視設定圓角在開發iOS當中是經常要做的事情。要為UIView物件設定圓角也是非常簡單地事情。

    view.layer.cornerRadius = 10;

這樣一句程式碼就輕鬆為一個view的四個角設定了圓角。 當我們需要為view任意一個角設定圓角的時候,需要怎麼辦呢?有一個方法就是通過layer.mask,也就是遮罩。加上UIBezierPath的+ (UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii

的這個方法就可以輕鬆新增圓角遮罩了。

UIRectCorner

UIRectCorner的定義如下:

typedef NS_OPTIONS(NSUInteger, UIRectCorner) {  
    UIRectCornerTopLeft     = 1 << 0,
    UIRectCornerTopRight    = 1 << 1,
    UIRectCornerBottomLeft  = 1 << 2,
    UIRectCornerBottomRight = 1 << 3,
    UIRectCornerAllCorners  = ~0U
L };

例子

下面程式碼就是為一個view三個角設定圓角。

- (void)layoutSubviews{
    [super layoutSubviews];
    CGFloat corner = 50;
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft cornerRadii:CGSizeMake(corner, corner)].CGPath
; self.layer.mask = shapeLayer; }

執行如下:

image


轉自:http://supermao.cn/wei-uiviewren-yi-jiao-she-zhi-yuan-jiao/