1

私はユニバーサルアプリケーションに取り組んでいます。1 つのビュー コントローラーを持つビュー ベースのアプリケーションがあります。UIImageViewサブビューとして aを追加しています。

私の問題は、ImageView を に配置するとviewDidLoad、iPad でサイズが変更されることです。

しかし、ボタン タップ イベントで ImageView をビュー コントローラーに動的に追加すると、UIImageViewiPad のようにサイズが変更されません。代わりに、320 x 480 のサイズの ImageView を表示しています。

注:私のView ControllersetAutoresizesSubviewsYES.

私のコードは以下の通りです:

-(void)buttonTap
{    
    UIImage *img = [[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"main-bg" ofType:@"png"]];
    UIImageView *imgViewMainBG = [[UIImageView alloc]initWithImage:img];
    imgViewMainBG.frame = CGRectMake(0,0,320,480);
    imgViewMainBG.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:imgViewMainBG];
    [imgViewMainBG release];
    [img release];
    img=nil;         
}
4

2 に答える 2

2

AutoresizingMask は、superView のサイズが変更されるたびに、superView のサイズの変更に応じてすべてのサブビューのサイズを変更するためのもので、subView の追加時にサブビューのサイズを変更しません。

ただし、self.view の境界またはフレームを見つけて、その境界に従って imageView のフレーム プロパティを設定することができます。

 [imgViewMainBG setFrame:CGRectMake(0, 0, self.view.frame.size.width,  
                                    self.view.frame.size.height)];

imgViewMainBG が ipad で完全に表示されるように

于 2012-09-03T14:02:54.373 に答える
0

画像ビューのcontentModeプロパティを に変更してみてくださいUIViewContentModeScaleToFill

于 2012-09-03T14:16:41.797 に答える