【问题标题】:LargeImageDownSizing Apple sample code - Restrict zoom levelLargeImageDownSizing Apple 示例代码 - 限制缩放级别
【发布时间】:2013-08-22 06:23:55
【问题描述】:

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

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

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

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

谢谢:)

【问题讨论】:

  • 刚刚验证了上面的代码。它似乎在我的最后工作。你只是在玩这些价值观还是别的什么?
  • 你能限制放大和缩小吗?我没有在这里做任何其他事情。
  • 是的!我遵循的步骤是,下载示例 -> 在 ImageScrollView.m 类中更改了这些值“self.maximumZoomScale = 2.00f; self.minimumZoomScale = 1.00f;”。它按预期工作。
  • 我也试过了,但如果你一次又一次地捏它,它会放大。只是捏的范围受到限制。 :(
  • 你是绝对正确的。其背后的原因是,它将图像的最后一个比例值保持为当前值,这就是缩放无限的原因。如果您正在寻找类似的东西,您有一个图像并且用户应该能够捏合和捏出?如果是,您也可以使用普通的滚动视图来实现这一点吗?如果您正在寻找其他东西或需要更多信息,请告诉我?

标签: iphone ios uiimageview uiimage


【解决方案1】:

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

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: 方法(由滚动视图调用)来影响滚动视图处理滚动手势的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2020-01-08
    • 2019-06-04
    • 1970-01-01
    • 2018-05-24
    • 2017-07-05
    相关资源
    最近更新 更多