2010-12-16 143 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