2012-11-21 64 views
3

在我的iPhone應用程序中,我試圖以編程方式調整大小並移動UIImageView,以便將其作爲iPhone屏幕左上角的原點,並使其具有寬闊像屏幕的高度一樣高。 爲此我使用下面的代碼:更改框架不會調整大小UIImageView

-(void)viewDidLoad 
{ 
    //Getting screen size 
    CGRect screenSize = [[UIScreen mainScreen]bounds]; 

    //Creating the new frame for the UIImageView 
    CGRect arect = CGRectMake(0, 0, screenSize.size.height, screenSize.size.height); 
    //Setting the image to show 

    UIImage *image = [UIImage imageNamed:@"Adele.jpg"]; 
    self.imageView.image = image; 

    //Setting new frame and contentmode 
    self.imageView.frame = arect; 
    self.imageView.contentMode = UIViewContentModeScaleToFill; 
} 

self.imageView是我的InterfaceBuilder創建了一個出口。

問題是,當我啓動應用程序時,此代碼似乎對UIImageView的框架沒有任何影響。 imageview infact將顯示在與IB創建時相同的位置並具有相同的大小。

有沒有人你有一個想法,爲什麼這段代碼不工作?我錯過了什麼?

回答

5

我想你可能需要不同的內容模式。

UIViewContentModeScaleAspectFit一試。在上下文:

self.imageView.frame = arect; 
self.imageView.contentMode = UIViewContentModeScaleToFill; 

如果不工作,你可以initWithFrame

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f); 
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
[myImage setImage:[UIImage imageNamed:@"myImage.png"]]; 

source

+2

的'UIViewContentModeScaleAspectFit'沒有工作,雖然'initWithFrame'做到了! 反正這不是一個奇怪的行爲?我的意思是不應該改變已經存在的'UIImageView'實例的框架? – BigLex

+4

對我而言,這是AspectFill的技巧。 – cph2117