我正在开发通用应用程序。我有一个基于视图的应用程序,它有一个视图控制器。我正在添加UIImageView
作为子视图。
我的问题是,如果我将ImageView放在viewDidLoad
中,它会在iPad中调整大小。
但是如果我在按钮点击事件中动态地添加ImageView来查看控制器,则UIImageView
不会按照iPad进行调整大小。相反,它显示的是尺寸为320 x 480的ImageView。
注意:我的视图控制器有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;
}
答案 0 :(得分:2)
AutoresizingMask用于根据superView大小的变化改变所有子视图的大小,每当superView的大小发生变化时,它都不会在添加子视图时调整子视图的大小。
但你可以找到self.view的边界或框架,并根据下面的界限设置imageView的frame属性
[imgViewMainBG setFrame:CGRectMake(0, 0, self.view.frame.size.width,
self.view.frame.size.height)];
这样imgViewMainBG在ipad中完全可见
答案 1 :(得分:0)
尝试将图片视图的contentMode
属性更改为UIViewContentModeScaleToFill
。