我正在尝试设置UIButton的子类视图的cornerRadius,圆角以正确的方式显示,但是当我尝试在其上添加一个subView(花图标)时,子视图似乎被剪裁为下面右侧侧的图片,这不是我的预期。我尝试制作正确的外观,如左侧图片所示,图标不被剪裁。我使用的代码:
button.layer.cornerRadius = button.frame.width / 2;
button.layer.masksToBounds = Yes;
希望有人能帮助我了解如何防止剪辑 谢谢!
答案 0 :(得分:1)
您不应该将叠加层添加为子视图。如果您将clipsToBounds
设置为YES
,则会剪切子视图。
而是将其添加为兄弟姐妹,如下所示:
- container view
- image view (clips)
- overlay view
答案 1 :(得分:0)
如果你使用上面提到的代码使按钮变圆,那么你的按钮肯定会从角落切掉,所以如果你只想从3个角落切掉它,那么就这样做:
#import <QuartzCore/CoreAnimation.h>
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds
byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft
cornerRadii:CGSizeMake(7.0, 7.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = button.bounds;
maskLayer.path = maskPath.CGPath;
button.layer.mask = maskLayer;