放大时只允许 UIScrollView 缩放弹跳,不能缩小

Posted

技术标签:

【中文标题】放大时只允许 UIScrollView 缩放弹跳,不能缩小【英文标题】:Only allowing UIScrollView to zoom bounce when zooming in, not out 【发布时间】:2014-08-11 03:19:48 【问题描述】:

我有一个 UIScrollView,我希望它在放大 in 时只放大反弹 (UIScrollView.bouncesZoom)。如果用户尝试将 out 缩小到 minimumZoomScale 则没有弹跳动画,但是当放大 in 时会有。 UIScrollView.bouncesZoom 属性只允许 true/false,它适用于放大和缩小。在理想情况下,我希望有类似的东西:UIScrollView.bouncesZoom.forMinimumZoomScale = false UIScrollView.bouncesZoom.forMaximumZoomScale = true 这样做的原因是用户无法缩小到可以看到周围空白的程度视图,因为这会降低我的应用程序的美观性。 如果您还有其他问题,请告诉我。谢谢!

【问题讨论】:

为什么不将滚动视图的背景颜色设置为与您的子视图相同的颜色,这样就什么都看不见了? @AbhiBeckert 因为我的子视图实现了自定义绘图,所以屏幕上的形状和线条将它与滚动视图可能具有的任何背景区分开来。没有图片有点难以解释,所以本质上我的意思是,对于这种情况,这并不是一个很好的选择 那么你需要在正常可见区域之外进行额外的绘制。 WWDC 会议视频解释了如何做到这一点。 @AbhiBeckert 我知道可能有解决方法,但是我正在寻找原始问题的答案,看看是否可行。这只是一个测试应用程序,所以如果我做不到也没什么大不了的。不过谢谢你的想法,我一定会检查一下 我不认为这是可能的,但我可能是错的。此外,能够看到背景是用户所期望的,例如在 safari 中尝试。 【参考方案1】:

仅在放大时弹跳:

-(void)scrollViewDidZoom:(UIScrollView *)scrollView
    [_scrollerPhoto setBouncesZoom:([scrollView zoomScale]>1)];

【讨论】:

缩放比例大于一并不意味着您正在放大。

以上是关于放大时只允许 UIScrollView 缩放弹跳,不能缩小的主要内容,如果未能解决你的问题,请参考以下文章

允许 UIScrollView 滚动过去的内容而不弹跳

动画视图缩放弹跳?

iOS UIScrollView捏缩放添加空白

如何使用 UIScrollView 捕捉缩放?

UIScrollView :仅向左水平分页,向右弹跳

UIScrollView 的最大缩放比例