2010-12-16 17 views
4

可能性の重複:
UIView with rounded corners角の丸いUIViewですか?

私はというし、鋭い角を丸くしたビューを持っていると思います。これを行うデフォルトの方法はありますか?

+1

(優れた答えと)DUP:http://stackoverflow.com/questions/1509547/uiview-with-rounded-corners –

答えて

14

ビューのlayerとそのmasksToBoundsプロパティを操作することで、これを行うことができます。

#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

+1

サブレイヤもクリップされます。上記を行うには、実際に 'CALayer.h'をインポートするだけで済みますが、フレームワークの代わりにファイルをインポートすることはできません。むしろ、 'CALayer.h 'のようなヘッダファイルにはコメントが含まれており、質問があればそれらを見ることができます。 – SK9

+0

私の限られた経験では、丸みを帯びたレイヤーをアニメートすることはiPhoneにとって高価だとも言います。 – SK9

0

によって指定されたUIViewsは、技術的には常に長方形です。丸みを帯びたエフェクトが必要な場合は、角が丸い背景画像が必要です。

+0

OK NVMこの他の回答である私は、UIViewカテゴリに次のコードを持っていますより良い – prgmast3r