• ベストアンサー

Xcode - UIImageViewの余白詰め

XcodeでObjective-Cによる開発を勉強中の超初心者です。 UIImageViewに縦横比を保持した画像を動的に表示したい為、contentModeをUIViewContentModeScaleAspectFitに設定しています。 この場合、長辺が目いっぱいまで広がり、短辺には余白ができてしまいますが、この余白を詰める方法はありますか? AutoLayoutで左右を画面いっぱいまで広げて、上下は画像の縦サイズによって詰めたいと考えています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

表示する画像の縦横比に合わせてイメージビューの表示枠(frame)を調整したいということですよね? AutoLayoutで実現したいんだったら、画像をイメージビューに設定したタイミングで、 以下のように画像の縦横比を指定したConstraintsを追加すればよいと思います。 _imageView.image = image; NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:_imageView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:_imageView attribute:NSLayoutAttributeHeight multiplier:image.size.width/image.size.height constant:0]; [_imageView addConstraint:constraint]; 画像を再設定した時は、上記で追加したconstraintをremoveConstraintで一旦削除して、新しい縦横比のconstraintsを追加する必要があります。

jin7vwh7
質問者

お礼

ありがとうございます!早速試したところ、思い通りの結果になりました。 StoryBoard上からのAutoLayoutの操作はだいぶ慣れてきましたが、コードでの扱いにまだ慣れていません。 この問題で2日間悩みました・・・(汗) これからも精進いたします。 本当にありがとうございました。

関連するQ&A

  • Xcodeでの表示について

    iPhoneアプリ開発初心者です。 storyboardでの表示において、添付画像のように縦横比がおかしく見えています。 表示の縦横比を実際の画面と同じにするにはどうすれば良いでしょうか?

  • Xcodeのアプリケーション開発についてです

    今Xcodeでアプリの開発をしている初心者です。 Objective-Cに苦戦しています。 簡単な動作でIBで配置した画像をタッチしたら別の画像に変わるようにしたいのですが可能でしょうか?ボタンなどは使わないで実現したいです。 分かりやすく教えてくださったらありがたいです。

  • ピクチャーボックスの大きさに合わせて画像を表示

    縦に長い画像をピクチャーボックスに表示したいのですが、 エクスプローラーの縮小表示と同じように 縦長の場合は左右に余白が出来て、画像の縦横比は 変更しないですべてを表示したいのですが、 どのようにしたら良いでしょうか。 PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage を使うと全部入るのですが、左右に余白がないように 引き伸ばしてしまうので、何の画像なのか分かりにくくなってしまいます。 よろしくおねがいします。m(__)m

  • カラーレーザーの余白のずれ

    カラーレーザープリンタで画像をA4いっぱいに印刷時、余白が均等ではなく、ガイドの当て方で多少は変わりますが、印刷範囲が右下にずれます(左右、上下の余白差が1~2mm)。また、微妙に傾いてしまいます。給紙の問題だと思うのですが、この位はずれるものでしょうか?仕様では上下左右余白4mmとなっています。

  • 画像を、余白0でA4全画面で印刷したい

    【質問】 ある画像を、A4サイズ全面に貼り付けてプリントアウト したいのですが、どうやったら出来ますでしょうか? ワード、エクセル、ペイント等で出来る方法が知りたいです。 【状況】 小さなペラのチラシをA4サイズに拡大して そのまま上下左右の余白なしで1枚のチラシを作りたいのです。 (そのペラの縦横の割合はA4ではないが、 多少横伸び縦伸びしても大丈夫) 【自分でやってみたこと】 ワードやエクセルのページ設定でA4にして、 上下左右の余白を0にして全面に画像を広げても、 印刷プレビューを見ると、画像の端が切られて 白い余白ができてしまいます。 ペイントなら出来るかと思ったのですが、 A4サイズの縦横ピクセル(?)サイズがわからないので出来ないのです。 かなり急いでいます。 パソコンにお詳しい方、どうぞご回答の方よろしくお願いしますm(_ _)m

  • ワードの警告メッセージの「印刷可能な余白」って?

    0ffice word2003を使用しています。 wordに詳しい方、教えていただきたいのですが… ハガキ縦に画像を取り込み、印刷しようとしています。 画像をできる限りハガキいっぱいにしたいので、余白を最小限にしたいのですが、うまくいきません。 印刷OKキーを押すと 「セクション1の余白が印刷可能な範囲の外に設定されています。印刷を継続しますか?」 という警告メッセージが出ます。 それでOKで印刷をしてみると、うまくいく場合と、ズレてなんかおかしくなる場合があります。 それじゃあ、印刷可能な範囲内にしようかと思ったのですが、 一体それは、上下左右それぞれ何mmにせよということなんでしょうか? どうやって調べることが出来るのかわかりません。 どうかお教えください。

  • ハガキに余白なしの印刷をしたい

    ハガキにはがきサイズで印刷したところ,上下左右に印刷されない余白ができます。ハガキの面いっぱいに余白なしに画像を印刷したいのですがどうすればいいでしょうか? 御存知の方教えてください。 ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • Wordの余白設定についてです。

    Wordの余白設定についてです。どのようにすれば、きれいでバランスのとれた文書を作成することができるのでしょうか?みなさまは、文書を作成する時、どのように余白を決めて設定していらっしゃいますでしょうか? みなさま、こんにちは。Wordの余白設定について悩んでいます。いろいろと調べてみましたら、白銀比(1:1.414(√2))というものがあるそうです。日本古来から使われており、用紙のサイズの規格としても使われている、美しくバランスよく見える比率だそうです。 ページの余白設定をする場合、白銀比になるように余白を設定すべきか、それとも上下左右ともに同じ余白に統一すべきか。どのような用途に使い分ければよいのか少し悩んでおります。 どなたかご回答して頂けますよう、よろしくお願い致します。

  • 画像の大きさを縦・横とも揃えたいです

    例えば自炊したコミックのモノクロ画像で 1590×891 1595×903 1605×910 など値は比較的近いが、様々な解像度の画像がたくさんあったとして、これを一括して 縦横とも一定の解像度にできるソフトはありませんか。 今回は1600×900にしたいので適時、拡大・縮小することになりますし、足りなくなったところは余白で埋めることになると思います。つまり、 「指定した解像度に、まずは短辺を指定値に統一し、それにより長辺が指定値より大きくなった場合はカット、小くなった場合は余白を入れる」 ことが一括でできるソフトがあればいいように思うのですがいかがでしょうか。 縮小ソフト DownsizeAll は試してみたのですが、長辺のみしか揃えられないよう思います。 (このソフトでは短辺はどうしようもないのでしょうか。) また1600など決まった値しか選べませんでした。任意の値が指定できるものがあれば助かります。 他に気がついてない方法などがあればご指摘ください。 この処理は行わなくても気にしなければ見れるのですが、もっと見やすくなればと思い質問させて頂きます。 ご存じの方何卒よろしくお願い致します。

  • 『横』向き用紙の印刷の右側の余白をゼロにしたいのですが

    XP、Excel。プリンタはEPSON PM-730c。住所・氏名とか、印刷枠が刷り込んである、B4『横』用紙にプリントしたいのです。[印刷プレビュー]-[設定]で左右の余白を0にし、[余白]で左右の線を移動させようとするのですが、画面に向かって右側だけが、あと10ミリ程を残して外側へ動きません(=余白がゼロにならない)。上下・左側には動きます。用紙を『縦』にすれば上下・左右に外側ぎりぎり迄動きます。”用紙を『横』にしたとき、画面に向かって右側の余白をほぼ0にするには、どこの設定をどうすれば良いか”教えて下さい。

専門家に質問してみよう