71

UIImageViewフレームサイズを に設定した場所がありx = 0, y = 0, width = 404, height = 712ます。私のプロジェクトでは、画像をUIImageView動的に変更する必要があります。

このコードを使用して画像を変更しています:

self.imageView.image = [UIImage imageNamed:@"setting-image.png"];

問題は、*.png画像サイズがフレーム サイズより小さい場合UIImageView、画像が伸びることです。伸ばしたくない。それを行う方法はありますか?

4

10 に答える 10

141

使用できます

self.imageView.contentMode = UIViewContentModeScaleAspectFit;

スウィフト 3:

imageView.contentMode = .scaleAspectFit

またはUIViewContentModeCenter/ 、またはUIView ドキ​​ュメント.centerで説明されているその他のモードのいずれか。

于 2011-08-12T04:19:16.670 に答える
6

プロパティを使用しcontentModeます。おそらく、 または のいずれかがUIViewContentModeScaleAspectFit必要UIViewContentModeCenterです。

于 2011-08-12T04:19:38.817 に答える
4

インターフェイス ビルダー内で UIImage のモードを「scale to fill」から「Center」に変更します。画像が必要な正確なサイズであることを確認してください。

ここに画像の説明を入力

于 2013-07-07T14:25:01.897 に答える
3

Swift 3 の更新:

imageView.contentMode = .scaleAspectFit
于 2016-11-25T20:41:23.140 に答える
2

contentMode を変更します。例:

imageView.contentMode = UIViewContentModeScaleAspectFit;
于 2011-08-12T04:20:34.377 に答える
1

あなたのためにこれを使用してくださいUIImageView

imageView.contentMode = UIViewContentModeScaleAspectFill;

スペースがなく、スケールが保持されます。ただし、画像の一部が切り取られます。

以下を使用する場合:

imageView.contentMode = UIViewContentModeScaleAspectFit;

空きスペースがありますが、スケールは維持されます。

于 2016-05-06T12:29:39.873 に答える
0

画像が imageivew より大きい場合でもストレッチ

迅速

    let qCodeImage = UIImage(named: "qcode-placeholder.png")!      
    let qCodeImageView = UIImageView(frame: CGRectMake(0, 0, CGRectGetWidth(cardView.frame)-30, CGRectGetWidth(cardView.frame)-30))
    qCodeImageView.image = qCodeImage
    qCodeImageView.clipsToBounds = true
    qCodeImageView.contentMode = UIViewContentMode.ScaleToFill
    qCodeImageView.center = cardView.center
于 2015-09-10T09:01:30.760 に答える