2016-07-25 5 views
0

私は画像伸長モードがFill,UniformToFillUniformであるXAMLの世界から来ています。私はiOSアプリでUniformToFillモードを達成することを目標にしています。 iOSでは、ScaleToFillAspectToFitAspectToFillなど多数ありました。それらのどれも私の要求を満たすものではありません。イメージの設定方法UniformToFillストレッチモード

必要な動作:UIImageView(画像コンテナ)のレイアウトのサイズは固定されたままです。固定サイズの画像をUIImageViewに拡大し、画像自体のアスペクト比を維持する。側面(垂直、水平)のいずれかと一致すると、画像のクリップ残り。

これをより詳しく説明するために、スクリーンショットを示します。私は左から3番目を達成しようとしています。 .ScaleAspectFillが何をするかだ

Image stretch mode

答えて

0

XAMLからiOSへの変換は以下の通りです。

Fill = ScaleToFill

Uniform = AspectToFit &

UniformToFill

= AspectToFill

これは完全一致です。この結果が得られない場合、それはあなたが何か他のことで間違いを犯したことを意味します。さもなければ、これは完璧なマッチングです。

+0

私にとって、 'UIImageView'は、' AspectToFill'が使われるとき、レイアウトの制約を超えています。あなたはそれが自動レイアウトの問題だと言っていますか? – XamlGuy

+0

次の行を追加する必要があります: 'imageview.layer.masksToBounds = true'、それは自動レイアウトの問題ではありませんが、境界を切り取らないと、境界から外れることになります。これを行う別の方法があります。このメソッドを 'imageview.clipsToBounds = true'と呼ぶこともできます。これは上記の行と同じように動作します。 –

+0

右。私はそれを試して、あなたに戻ってくるつもりです。 – XamlGuy

0

UIImageはコンテナとして話していますか?私はあなたがUIImageViewを調べるべきだと思います。そのようなことがうまくいく(つまり、Swiftで書かれたが、Objective-C

let image = UIImage(named: "your_image") 
let imageView = UIImageView(image: image) 
imageView.contentMode = .ScaleAspectFill 
+0

ありがとうございました。私は実際に 'UIImageView'を意味しました。 – XamlGuy

0

に容易に適応だ私は、あなたのイメージビューのコンテンツモードとしてUIViewContentModeScaleAspectFillを設定するべきだと思います。

あなたはより多くの詳細についてはApple documentationを参照することができます。

それはおよそscaleAspectFill

Fにコンテンツを拡張するためのオプションを述べてビューの大きさ一部の コンテンツの一部は、ビューの境界を埋めるようにクリップされることがあります。

scaleAspectFit

アスペクト比を維持することによって、ビューのサイズに合わせてコンテンツを拡大縮小するためのオプション。ビューの境界の残りの領域は透明です。

実際の違いを感じてください。

+0

します。しかし、属性インスペクタのドロップダウンリストにはどのように表示されていませんか? – XamlGuy

+0

属性インスペクタには、 'view'の下に' mode'というタイトルが付けられています。'Aspect fill'は' scaleAspectFill'に相当し、 'Aspect fit'は' scaleAspectFit'に相当します – Lion

+0

答えに感謝します。原因はチェックされていなかった 'clip subviews'プロパティでした。 – XamlGuy

関連する問題