2012-01-13 89 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的宽高比,然后使用新宽度计算高度。