2011-07-19 27 views
0

我似乎无法使用UIViewContentModeScaleAspectFit属性来缩放我的imageView在我的滚动视图,以适应滚动视图的大小。大的UIImage不缩小到滚动视图的框架

- (void)loadView { 
UIImage* image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.moilum.com/images/atomicongallery/setmenu/setmenu1.jpg"]]]; 
imageView = [[UIImageView alloc]initWithImage:image]; 
    imageView.contentMode = UIViewContentModeScaleAspectFit; 
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; 
UIScrollView* scrollView = [[UIScrollView alloc]initWithFrame:applicationFrame]; 
[scrollView addSubview:imageView]; 
scrollView.contentSize = image.size; 
scrollView.minimumZoomScale = 0.3; 
scrollView.maximumZoomScale = 3.0; 
scrollView.clipsToBounds = NO; 
scrollView.delegate = self; 
self.view = scrollView; 

}

我试图imageView.contentMode = UIViewContentModeScaleAspectFill为好。 scrollView.contentmode = UIViewContentModeScaleAspectFill。所有不似乎:(

任何方式工作了!?

干杯!

回答

0

如果您没有在UIScrollViewDelegate上实现- (UIView *)viewForZoomingInScrollView:(UIScrollView *)sView方法,UIScrollView将不会调整其zoomScale。

像这样的事情

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)sView 
{ 
    NSArray *subViews = [sView subviews]; 
    if([subViews count] > 0){ 
    return [subViews objectAtIndex:0]; 
    } 
    return nil; 
} 

(但显然不是设置一个委托,在所有工作过。)

0

你有没有试过,

-(void)loadView 
{ 
     CGRect frame = CGRectMake(0, 0, scrollView.frame.size.width, scrolllView.frame.size.height); 
     imageView = [[UIImageView alloc] initWithFrame:frame]; 
     imageView.image = [UIImage imageNamed:@"yourimage.png"]; 
     imageView.contentMode = UIViewContentModeScaleAspectFit; 
     [scrollView addSubView:imageView]; 
     scrollView.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height); 
} 

我写信我的iPad这个代码,我觉得这应该工作, 让我知道,如果你有任何问题。

祝你好运。

+0

谢谢你,我要试试这个! –

+0

嗨Jecht,你的代码有效!我发现了这个问题。每当我设置委托给滚动视图。 imageview不会将其自身重新设置为内容模式。 scrollview.delegate中的某些内容阻止了这种情况的发生。此外,我认为它可能是viewforScrollView,我实现的方法不允许imageview调整大小。谢谢 :) –

相关问题