1

我正在开发一个通用应用程序。我有一个基于视图的应用程序,它有一个视图控制器。我正在添加一个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;         
}
4

2 回答 2

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 中完全可见

于 2012-09-03T14:02:54.373 回答
0

尝试将图像视图的contentMode属性更改为UIViewContentModeScaleToFill.

于 2012-09-03T14:16:41.797 回答