43
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【iOS】clipsToBoundsについて調べる

Last updated at Posted at 2019-04-28

なんとなく使っていたことを反省してちゃんと調べたときのメモです:baby:

clipsToBoundsの概要

Apple公式サイトには下記のようにあります。

A Boolean value that determines whether subviews are confined to the bounds of the view.
(サブビューをビューのboundsに限定するかどうかを決定するBool値。)

また実際のプロジェクトでは UIKit > UIView.h の配下にプロパティとして定義されていました。

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はデフォルトで領域外の描画を許可しているということになります:point_up:

Storyboardで確かめてみる

Storyboardの中央に、長方形のUIImageViewを配置します。
(Content ModeはAspect Fillを選択しておきます)
スクリーンショット 2019-04-28 10.07.56.png

そこに正方形の画像をあててみます。

clipsToBoundsfalseの場合(デフォルト)

画像のサイズに応じて、UIImageViewの領域外も描画されました。
スクリーンショット 2019-04-28 10.11.33.png

clipsToBoundstrueの場合

描画がUIImageViewの領域内に限定されました。
スクリーンショット 2019-04-28 10.11.53.png

clipsToBoundsについての理解がかなり進んだ気がします:sun_with_face:

clipsToBoundsの使いどころ

たとえばAPIからランダムな大きさの画像が返ってきて、それをいい感じにUIImageViewに表示したいときなどはAspect Fill+clipsToBoundsが便利です。

詳細はわかりやすい記事がありましたのでそちらをご覧ください。
Aspect Fill, Aspect Fit, Scale to Fillの違い - Qiita

参考になった記事

43
31
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?