Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【iOS】clipToBoundsについて調べる

More than 1 year has passed since last update.

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

clipToBoundsの概要

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.

ここまででclipToBoundsの特徴まとめてみます。

  • 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

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

clipToBoundsfalseの場合(デフォルト)

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

clipToBoundstrueの場合

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

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

clipToBoundsの使いどころ

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

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

参考になった記事

orimomo
iOS/Androidエンジニア👩‍💻モバイルアプリ開発を深めていきたい。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away