UIButton切圆角

1、初始化UIButton

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setTitleColor:[Toolkit  hexColor:@"ffffff" forState:UIControlStateNormal];
[btn setTitle:@"我要留下" forState:UIControlStateNormal];
btn.backgroundColor = [Toolkit  hexColor:@"fe4c00"];
[btn addTarget:self action:@selector(closeBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn];

2、进行切圆角操作,使用UIBezierPath和CAShapeLayer切除需要的圆角

/*关键参数:byRoundingCorners
*UIRectCorner枚举:
*UIRectCornerTopRight(右上)、
*UIRectCornerBottomRight(右下)、
*UIRectCornerTopLeft(左上)、
*UIRectCornerBottomLeft(左下)
*/
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.cancelBtn.bounds byRoundingCorners:UIRectCornerBottomRight cornerRadii:CGSizeMake(10.0, 10.0)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.cancelBtn.bounds;
maskLayer.path = maskPath.CGPath;
self.cancelBtn.layer.mask = maskLayer;

注意:如果初始化UIButton或者使用Masonry布局,一开始按钮没有指定frame,此时bounds是CGRectZero,所以会使得mask不显示,因此要在UIView的layoutSubviews或者UIViewController的viewDidLayoutSubviews中进行切圆角操作才有效。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容