gpt4 book ai didi

objective-c - UIScrollView 的最大缩放比例

转载 作者:行者123 更新时间:2023-11-29 11:04:57 24 4
gpt4 key购买 nike

基于Large Image Downsizing iOS sample code ,我正在尝试为我的 UIScrollView 设置最大缩放比例,以免图像太大。

我知道 UIScrollView 的 maximumZoomScale native 属性是指 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 native 行为相同的解决方案。每次我在代码中更改它时,我都试图将 zoomScale 设置为 imageScale 的值,但是它在图像上产生了奇怪的行为,所以我不能使用这个方法。

所以,我的问题是:

  • 有没有办法告诉 UIScrollView 它必须采用 imageScale 作为 zoomScale 值? (可能覆盖本地方法)
  • 是否有另一种方法可以将比例限制为最大值?
  • 有没有办法定义最大尺寸而不是最大比例?

非常感谢!

最佳答案

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

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

希望我的回答对其他人有帮助...

关于objective-c - UIScrollView 的最大缩放比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14091415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com