0

我正在尝试设置 UIButton 的子类视图的cornerRadius,圆角以正确的方式显示,但是当我尝试在其上添加子视图(花朵图标)时,子视图似乎像图片上的图片一样被剪裁了右下角,这不是我所期望的。我尝试制作正确的外观,如左侧图片所示,图标不被剪裁。我使用的代码:

button.layer.cornerRadius = button.frame.width / 2;
button.layer.masksToBounds = Yes;    

头像视图(左) 头像视图(右)

希望有人可以帮助我了解如何防止剪辑。
谢谢!

4

2 回答 2

1

您不应该将叠加层添加为子视图。clipsToBounds如果您设置为 ,子视图将被剪裁YES

而是将其添加为兄弟,如下所示:

- container view
  - image view (clips)
  - overlay view
于 2015-06-25T15:51:32.753 回答
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;
于 2015-06-25T15:49:17.217 回答