2010-12-16 113 views
4

可能重复:
UIView with rounded corners带圆角的UIView?

我想有圆角而不是锋利的视图。有没有这样做的默认方式?

+1

Dup的(具有优良的答案):http://stackoverflow.com/questions/1509547/uiview-with-rounded-corners – 2010-12-16 01:45:09

回答

14

您可以通过操纵视图的layer及其masksToBounds属性来执行此操作。我有一个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]; 
} 
+0

行“self.layer.masksToBounds = YES;”的目的是什么? – Jumhyn 2010-12-16 02:21:14

+1

子图层也被裁剪。要实现上述操作,实际上只需要导入'CALayer.h',但导入文件而不是框架没有任何好处。相反,像CALayer.h'这样的头文件包含有帮助的注释,如果你有问题,你可以查看这些注释。 – SK9 2010-12-16 02:29:32

+0

我还会说,在我有限的经验中,动画化一个圆形图层对于iPhone而言是昂贵的。 – SK9 2010-12-16 02:34:58

0

不是我所知 - 因为UIViewsCGRects指定,它们在技术上总是矩形。如果你想要一个圆角效果,你需要一个圆角的背景图片。

+0

确定NVM这个其他的答案是更好 – prgmast3r 2010-12-16 01:46:22