UIScrollView 在不正确的点上缩放
Posted
技术标签:
【中文标题】UIScrollView 在不正确的点上缩放【英文标题】:UIScrollView zooming on incorrect point 【发布时间】:2016-09-03 13:49:23 【问题描述】:我有一个带有图像的 UIScrollView,并且该图像位于容器视图中。视图层次结构如下所示:
UIScrollView
UIView
UIImageView
平移效果很好,但是当我使用捏合手势进行缩放时,图像会改变大小,但不会相对于原点移动,因此两个手指下方的中心点会随着手势的进行而移动。这使得放大特定点变得非常困难,因为它会随着您的缩放而滑开。
所涉及的视图描述:
<MyApp.MyView: 0x7ff6fd827e00; baseClass = UIScrollView; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x61800004a4d0>; layer = <CALayer: 0x618000023420>; contentOffset: 684, 487.5; contentSize: 1731.4584832023011, 1154.3056554682007>
<UIView: 0x7ff6fbe0c4d0; frame = (0 0; 1728 1152); transform = [2.2028669620902912, 0, 0, 2.2028669620902912, 0, 0]; layer = <CALayer: 0x6180000234c0>>
<UIImageView: 0x7ff6fbe09cd0; frame = (0 0; 1728 1152); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x618000023340>>
我在 UIView 包装器中有 UIImageView,因为我将在图像上覆盖其他需要缩放/缩放图像的视图。
在缩放期间我自己的代码很少运行。 UIScrollViewDelegate 返回 UIView(UIImageView 的父级),并配置滚动视图:
minimumZoomScale = 0.2
maximumZoomScale = 3.0
contentSize = image.size
【问题讨论】:
【参考方案1】:好吧,我制作了一个使用您的视图结构的简单项目。我没有面对这些问题。可能,您应该检查以下内容:
是自动布局约束设置正确方式 您的父视图是否正确缩放 是UIImageView
的模式适合您的需求 希望这可能会有所帮助
【讨论】:
我只是做了同样的事情——现在想弄清楚有什么不同。当我弄清楚时会更新。谢谢。 找到了——我在 UIScrollView 的 layoutSubviews 中设置了 contentView.frame。我的愚蠢错误,感谢您调查。以上是关于UIScrollView 在不正确的点上缩放的主要内容,如果未能解决你的问题,请参考以下文章