2012-12-06 69 views
2

我很喜欢使用UIScrollView缩放缩放功能。但问题是滚动视图中图像的方面适合度。UIImageView缩放UIScrollView

目前,我有这个,如下图:

enter image description here

但我想图像要适合屏幕像下图:

enter image description here

和景观相同的行为。我怎样才能做到这一点?

下面是代码:

- (void)viewDidLoad 
{ 
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage]; 
    imgView.image = image; 
    CGSize imageSize = image.size; 
    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height); 
    imgView.frame = rect; 
    scrollView.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height); 
    scrollView.maximumZoomScale = 4.0; 
    scrollView.minimumZoomScale = 1.0; 
    scrollView.delegate = self; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage]; 
    CGSize imageSize = image.size; 
    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height); 
    imgView.frame = rect; 

    [scrollView setContentOffset:CGPointMake(0, 0)]; 

    return YES; 
} 
+0

它看起来像你的代码中的ImageView的大小设置为图像的原始大小的imgView。我认为如果你定义了你想要的图像视图的大小,并保持方面适合你应该得到你想要的效果。 – propstm

回答

4

您设置的UIImageView到图像的原始尺寸,而不是包含它的的UIScrollView的大小。

- (void)viewDidLoad 
{ 
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage]; 
    imgView.image = image; 

    imgView.frame = scrollView.bounds; 
    [imgView setContentMode:UIViewContentModeScaleAspectFit]; 
    scrollView.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height); 
    scrollView.maximumZoomScale = 4.0; 
    scrollView.minimumZoomScale = 1.0; 
    scrollView.delegate = self; 
} 

记得返回上viewToZoom委托方法

+1

Thanx Pacu。它的工作:) –

+0

不客气:) – Pacu