2

UIImageViewIBを持っています。フレームと画像を設定します。ポイントは、私の画像が 300x193 であることですが、後でより大きな画像を更新してcontentMode、このビューでいくつか使用したいと考えています。

だから私は始めに持っています:

ここに画像の説明を入力ここに画像の説明を入力

したがって、フレームを維持する必要があることは明らかで310 116 300 193あり、そのように維持したいと考えています(そのため、Scale To Fill ContentMode.

ここに画像ピッカーがあり、このコードを使用すると:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self.imView setImage:[info objectForKey:UIImagePickerControllerOriginalImage]];

    [self dismissModalViewControllerAnimated:YES];

}

私のUIImageViewフレームは次のように変わります:

(UIImageView *) $0 = 0x1c5c1ae0 <UIImageView: 0x1c5c1ae0; frame = (-160 20; 640 1136); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x1c5c1b40>> - (null)

なんで?

4

3 に答える 3

3

画像ビューに幅と高さの制約を追加するだけです。なぜ自動的に取得されなかったのかわかりませんが、画像ビューにドラッグしたときに取得しました。

于 2013-01-27T00:58:57.407 に答える
0

これは自動レイアウトが原因だと思います。レイアウトにより、ビューを拡大してさまざまなサイズの画像に対応できるようになります。> =サインインのある青い「ユーザー」制約がありますか?

IBの[showfileinspector]で、[Use Autolayout]のチェックを外すと、動作が希望どおりに変化することがわかります。自動レイアウトを有効のままにして、必要な動作を得るには、各制約と、それがそのビューのサイズにどのように影響するかを確認する必要がある場合があります。

于 2013-01-26T22:01:34.693 に答える
0

ビュー モードを からScale to Fillに変更してみてくださいAspect to Fit

于 2013-01-26T23:07:35.497 に答える