2012-09-03 114 views
1

我正在通用应用程序。我有一个基于视图的应用程序,它有一个视图控制器。我将添加一个UIImageView作为子视图。UIView子视图不调整大小

我的问题是,如果我把ImageView放在viewDidLoad中,它会在iPad中调整大小。

但是,如果我在按钮点击事件中动态添加ImageView以查看控制器,则UIImageView不会根据iPad调整大小。相反,它显示320 x 480尺寸的ImageView。

注意:我的视图控制器有setAutoresizesSubviewsYES

我的代码如下:

-(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;   
} 

回答

2

AutoresizingMask是改变根据SuperView把尺寸变化的所有子视图的大小,只要上海华盈的大小发生变化,也不会调整在子视图添加子视图的时间。

但是你可以根据所发现的边界或self.view的框架和设置的ImageView的框架属性bounds像下面

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

使imgViewMainBG是在ipad完全可见

+0

感谢您的回复。但我不能使用这个,因为我有其他的子视图,其大小与屏幕大小不一样。其他子视图具有不同的大小,如(20,20,100,150)。我也希望这些子视图在ipad中自动调整大小。 –

+1

这让我非常痛心,谢谢你提供了这样一个简单,直接的解决方案! –

0

尝试改变图片视图的contentMode属性为UIViewContentModeScaleToFill

+0

我试过这个,但没有工作。 –

相关问题