【问题标题】:How to snap to zoom with UIScrollView?如何使用 UIScrollView 捕捉缩放?
【发布时间】:2011-08-12 13:58:27
【问题描述】:

我有一个带有内容视图的 UIScrollView,用户可以放大/缩小。最小缩放级别小于 1,最大缩放级别大于 1。

用户可以轻松地完全放大或完全缩小。我该怎么做才能让 UIScrollView 也捕捉到缩放级别 1?不仅在用户抬起手指时,而且在他们放大/缩小时也是如此。

【问题讨论】:

    标签: iphone ios uiscrollview zooming


    【解决方案1】:

    编写一个方法,每次用户停止缩放时都会调用该方法,然后检查当前缩放比例是否非常接近 1.0(例如介于 0.8 和 1.2 之间的某个值)。如果返回 true,则缩放比例精确设置为 1.0 以进行捕捉。

    【讨论】:

    • 这可行,但我也希望它在用户捏合时捕捉到缩放级别,以帮助缩放。我已编辑问题以反映这一点。
    • 为什么不让 NSTimer 在用户捏合并调用相同方法时每隔 x 十分之一秒(左右)关闭一次?
    • 我刚试过......它最终会阻止你缩放,除非你快速缩放:(。
    • 好的,我在你缩放时进行了捕捉,默认情况下,滚动视图在你滚动时也不会捕捉,而是在你让动画回到可接受的位置时去。我使用了这个代码:- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale if (scrollView.zoomScale > 0.9f && scrollView.zoomScale < 1.1f) { [scrollView zoomToRect:scrollView.frame animated:YES]; } } 完美运行。
    【解决方案2】:

    诀窍是覆盖或禁用捏并添加您自己的。开始捏合手势时,在捏合完成之前不要更新显示和调整图像大小,然后发出 zoomToRect。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2019-07-29
      • 1970-01-01
      相关资源
      最近更新 更多