JoshPell

人生只有必然,没有偶然

欢迎来到我的个人网站~


自选某几个角进行圆角裁剪

圆角在苹果的世界时随处可见的。为视图设置圆角在开发iOS当中是经常要做的事情。要为UIView对象设置圆角也是非常简单地事情。

view.layer.cornerRadius = 10;

这样一句代码就轻松为一个view的四个角设置了圆角。 但当我们需要为view任意一个角设置圆角的时候,需要怎么办呢?有一个方法就是通过layer.mask,也就是遮罩。加上UIBezierPath的 + (UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii 的这个方法就可以轻松添加圆角遮罩了。

UIRectCorner的定义如下:

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

例子:下面代码就是为一个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;
}

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 谭健,分享从这里开始,精彩与您同在


正在加载中……