基于Large Image Downsizing iOS sample code,我正在尝试为我的 UIScrollView 设置最大缩放比例,以免图像太大。
我知道 UIScrollView 的 maximumZoomScale 本机属性是指 zoomScale 属性,以便授权放大或不放大。但是,在此示例代码中,图像的比例是使用自定义浮动 imageScale 管理的,并且 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 它必须像 zoomScale 值一样采用 imageScale ?(可能会覆盖本机方法)
- 是否有另一种方法可以将比例限制为最大值?
- 有没有办法定义最大尺寸而不是最大比例?
非常感谢 !