2015年9月2日水曜日

ImageViewの画像がはみ出す

ImageViewに画像を表示させる場合、画面の縦横比が合わないと見にくいことになるので、ViewのModeで、Aspect FitとかAspect Fillとかを設定することが多いだろう。
Aspect FillにすればImageViewの縦横比と実際の画像の縦横比が違っても、画像の縦横比を崩さずに拡大して表示してくれる。

下の例だと、「会話」などのボタン表示スペースを空けて、その上までがImageView担っている。
(TextViewのテキストが途中でブチ切れてるのはXcodeの仕様なんで、イラっとしても今は気にしない)

期待する表示

ところがビルドしてみると画像がはみ出してボタンにかかってしまい、見づらくなってしまった。
Constraintsを調べても間違っているようには思えない。
期待に応えてくれなかった表示

調べたところ、ImageViewのインスペクタから、DrawingのClip Subviewsボタンにチェックを入れれば直った。

DrawingのClip SubviewsをON


デフォルトでは親View(この場合ImageView)に載ってる子View(この場合画像自体だろう)が親よりでかい場合、はみ出すよう(Clipしない)になっているのだな。
それでチェックをすれば親の大きさの範囲でClipしてくれるようになるわけだ。
めでたしめでたし。

Viewの上にButtonを貼ってあるとか親子関係がわかりやすいならともかく、ImageViewと画像まで親子関係を求められるとは思わんかった。
普通はImageViewの範囲でClipされるのをデフォルトにすべきだと思うんだが…。他の部品と合わせちゃったのかね。
期待どおり

0 件のコメント:

コメントを投稿