2012-12-30 68 views
1

基于Large Image Downsizing iOS sample code,我试图将最大缩放比例设置为我的UIScrollView,以便不会有太大的图像。UIScrollView的最大缩放比例

我知道UIScrollView的最大缩放比例本地属性是指zoomScale属性,以便授权缩放或不缩放。但是,在此示例代码中,图像的缩放比例是使用自定义浮动图像缩放比例进行管理的,而UIScrollView的zoomScale属性始终为1.

在此示例代码中,我看到最大缩放比例使用这个方法:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { 
    imageScale *=scale; 
    if(imageScale < maximumScale) imageScale = minimumScale; // THIS IS THE LINE WHO AVOID TO ZOOM TOO MUCH BUT IT MAKES A REALLY UGLY BEHAVIOUR 

    CGRect imageRect = CGRectMake(0.0f,0.0f,CGImageGetWidth(image.CGImage) * imageScale,CGImageGetHeight(image.CGImage) * imageScale); 
    // Create a new TiledImageView based on new frame and scaling. 
    frontTiledView = [[TiledImageView alloc] initWithFrame:imageRect image:image scale:imageScale]; 
    [self addSubview:frontTiledView]; 
    [frontTiledView release]; 
} 

所以我希望找到具有相同行为的UIScrollView的一个本土的解决方案。 我试图将zoomScale设置为imageScale的值,每次我在代码中对其进行更改时,它都会在图像上产生奇怪的行为,所以我无法使用此方法。

所以,我的问题是:

  • 有没有办法告诉给了UIScrollView的,它已经采取imageScale如zoomScale价值? (也许覆盖本地方法)
  • 是否有另一种方法来限制规模最大值?
  • 有没有办法定义最大尺寸而不是最大尺寸?

非常感谢!

回答

2

我觉得我很好!这段代码解决了我的问题!

if (imageScale > delegateAppli.params.zoomLevelAuthorized) self.maximumZoomScale = 1.0; 
else self.maximumZoomScale = 1 + delegateAppli.params.zoomLevelAuthorized - imageScale; 

地希望我的回答将帮助其他人...

+2

随时接受你自己的答案 –