带圆角的UIView?

5

可能是重复问题:
如何使UIView的角变圆

我想让一个视图的角变成圆形而不是尖锐的,有没有默认的方法可以实现这个效果?


2
Dup(带有优秀答案):https://dev59.com/uXI_5IYBdhLWcg3wJPdu - Kevin L.
2个回答

14

您可以通过操作视图的layermasksToBounds属性来实现此功能。我在UIView类别中有以下代码:

#import <QuartzCore/QuartzCore.h>
...
- (void)addRoundedCornersWithRadius:(NSInteger)cornerRadiusInPixels
{
    self.layer.cornerRadius = cornerRadiusInPixels;
    self.layer.masksToBounds = YES;
    self.opaque = NO;
}

- (void)makeEndsRounded
{
    CGFloat minSide = fmin(self.bounds.size.width, self.bounds.size.height);
    [self addRoundedCornersWithRadius:minSide/2];
}

"self.layer.masksToBounds = YES;" 这行代码的作用是什么? - Jumhyn
1
子层也被剪裁。实际上,要做到以上所述,您只需要导入 CALayer.h,但是导入文件而不是框架并没有任何好处。相反,像 CALayer.h 这样的头文件包含有助于您的注释,如果您有问题,可以查看这些注释。 - Ken
在我的有限经验中,我还想说,为iPhone制作动画圆角图层是比较费时的。 - Ken

0

据我所知没有这样的功能 - 因为UIViews是由CGRects指定的,它们在技术上始终是矩形的。如果您想要圆角效果,则需要一个带有圆角的背景图像。


好的,没事了。其他答案更好。 - prgmast3r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接