我正在开发通用应用程序。我有一个基于视图的应用程序,其中有一个视图控制器。我正在添加UIImageView
作为子视图。
我的问题是,如果将ImageView放在viewDidLoad
中,它将在iPad中调整大小。
但是,如果我在按钮点击事件中动态添加ImageView来动态地查看控制器,则按照iPad,UIImageView
的大小不会得到调整。相反,它显示的是320 x 480尺寸的ImageView。
注意:我的View Controller具有setAutoresizesSubviews
到YES
。
我的代码如下:
-(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;
}
最佳答案
AutoresizingMask用于在superView的大小发生更改时根据superView的大小更改来更改所有子视图的大小,在添加subView时不会调整子视图的大小。
但是您可以找到self.view的边界或框架,并根据如下所示的边界设置imageView的frame属性
[imgViewMainBG setFrame:CGRectMake(0, 0, self.view.frame.size.width,
self.view.frame.size.height)];
使imgViewMainBG在ipad中完全可见