なんとなく使っていたことを反省してちゃんと調べたときのメモです
clipsToBounds
の概要
Apple公式サイトには下記のようにあります。
A Boolean value that determines whether subviews are confined to the bounds of the view.
(サブビューをビューのboundsに限定するかどうかを決定するBool値。)
また実際のプロジェクトでは UIKit > UIView.h の配下にプロパティとして定義されていました。
@property(nonatomic) BOOL clipsToBounds;
// When YES, content and subviews are clipped to the bounds of the view. Default is NO.
ここまででclipsToBounds
の特徴まとめてみます。
- UIView(+それを継承しているUIImageView等)のプロパティである
- Viewにセットしたコンテンツが、領域
bounds
の外を描画するかどうかを決定する - デフォルト値が
false
で、true
にすると領域内に限定される
またデフォルト値がfalse
ということは、UIViewやUIImageViewはデフォルトで領域外の描画を許可しているということになります
Storyboardで確かめてみる
Storyboardの中央に、長方形のUIImageViewを配置します。
(Content ModeはAspect Fill
を選択しておきます)
clipsToBounds
がfalse
の場合(デフォルト)
画像のサイズに応じて、UIImageViewの領域外も描画されました。
clipsToBounds
がtrue
の場合
clipsToBounds
についての理解がかなり進んだ気がします
clipsToBounds
の使いどころ
たとえばAPIからランダムな大きさの画像が返ってきて、それをいい感じにUIImageViewに表示したいときなどはAspect Fill
+clipsToBounds
が便利です。
詳細はわかりやすい記事がありましたのでそちらをご覧ください。
Aspect Fill, Aspect Fit, Scale to Fillの違い - Qiita