2012-09-03 105 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

我試過這個,但沒有工作。 –

相關問題