2012-01-13 91 views
1

我有下面的代碼,當調整的UIImageView的寬度比例:改變高度

UIImageView * imgView = [[UIImageView alloc] initWithImage:image]; 

NSLog(@"IMAGE SIZE WIDTH IS %f AND HEIGHT IS %f", imgView.frame.size.width, imgView.frame.size.height); 

[imgView setUserInteractionEnabled:YES]; 
[imgView setContentMode:UIViewContentModeScaleAspectFit]; 

CGRect frame = imgView.frame; 
frame.size.width = SCREEN_WIDTH_PORTRAIT; 
[imgView setFrame: frame]; 

然而,這種觀點的高度並沒有發生相應的變化,有什麼不好?

回答

0

您正在告訴視圖的內容要縮放,而不是視圖本身。你將不得不設置寬度和高度來做到這一點。

如果你只是想與取向的變化規模,不過,你可以使用UIViewAutoresizingMask並將其設置是這樣的:

imgView.autoresizingMask = UIViewAutoresizingFlexibleWidth| UIViewAutoresizingFlexibleHeight; 

自動切換方向時,這將使其伸展。

編輯: 這裏是你將如何改變高度和保持率,和動畫的新框架:

CGRect frame = imgView.frame; 
float ratio = frame.size.width/SCREEN_WIDTH_PORTRAIT; 
frame.size.width = SCREEN_WIDTH_PORTRAIT; 
frame.size.height *= ratio; 
[UIView animateWithDuration:.25 animations:^{ 
    [imgView setFrame: frame];    
}]; 
+0

嗯...所以沒有辦法改變它自我縮放的視圖? – xonegirlz 2012-01-13 07:24:52

+0

顯式設置UIView的寬度不會影響它的高度,否。也許如果你展示使用更多的代碼,我可以給你一個比我提供的更好的解決方案。 – 2012-01-13 07:27:01

+0

我只是試圖動畫一個UIImageView,使它在寬度上更大......但是按比例增長..全部都是 – xonegirlz 2012-01-13 07:37:38

0

圖像將適合的框架上,相同的高度,你只能改變寬度。因此,根據圖像的寬高比,圖像可能不會改變其大小。您可以確定UIImage的寬高比,然後使用新寬度計算高度。