為UIView任意角設定圓角
阿新 • • 發佈:2019-02-06
圓角在蘋果的世界時隨處可見的。為檢視設定圓角在開發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;
}
執行如下:
轉自:http://supermao.cn/wei-uiviewren-yi-jiao-she-zhi-yuan-jiao/