0

我正在使用Apple示例代码LargeImageDownSizing来查看我的大图像。此代码允许放大到无限级别并在某个级别缩小。

但是有些我无法限制放大和缩小,它有一个滚动视图,它具有以下属性:

self.maximumZoomScale = 5.00;
self.minimumZoomScale = .25f;

当我尝试更改上述值时,它什么也没做,我仍然可以无限放大它。任何人都可以帮我解决这个问题,我需要限制放大和缩小级别。

谢谢 :)

4

1 回答 1

0

只是为了猜测,因为我也在我的代码中做了它并且它有效,我想建议 -

UIScrollView 类可以有一个必须采用 UIScrollViewDelegate 协议的委托。

要使缩放和平移工作,代理必须同时实现 viewForZoomingInScrollView: 并且scrollViewDidEndZooming:withView:atScale:此外,maximum (maximumZoomScale)缩放minimum ( minimumZoomScale)比例必须不同。

或者

在 iOS 5.1 SDK(以及之前的版本)下,可以向 UIScrollView 添加手势识别器,并能够使其与 UIScrollView 中内置的 panGestureRecognizer 和 pinchGestureRecognizer 一起工作。

在 iOS 6.0 SDK 下,显然不再真正支持这种行为。相关文档(https://developer.apple.com/library/ios/navigation/)并没有明确禁止该行为,因为它确实定义了 UIScrollView 将对可能与平移相关或不相关的触摸做什么捏。

因为滚动视图没有滚动条,所以它必须知道触摸是表示滚动意图还是跟踪内容中的子视图的意图。为了做出这个决定,它通过启动一个定时器来临时拦截一个触摸事件,并在定时器触发之前,查看触摸的手指是否有任何移动。如果计时器在位置没有显着变化的情况下触发,则滚动视图将跟踪事件发送到内容视图的触摸子视图。如果用户在计时器结束之前将手指拖得足够远,则滚动视图会取消子视图中的任何跟踪并自行执行滚动。子类可以覆盖 touchesShouldBegin:withEvent:inContentView:、pagingEnabled 和 touchesShouldCancelInContentView: 方法(由滚动视图调用)来影响滚动视图处理滚动手势的方式。

于 2013-08-23T09:18:23.933 回答