【问题标题】:UIScrollView zooming on incorrect pointUIScrollView 在不正确的点上缩放
【发布时间】: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

【问题讨论】:

    标签: ios uiscrollview uikit


    【解决方案1】:

    好吧,我制作了一个使用您的视图结构的简单项目。我没有面对这些问题。可能,您应该检查以下内容:

  • 是自动布局约束设置正确方式
  • 您的父视图是否正确缩放
  • UIImageView 的模式适合您的需求

    希望这可能会有所帮助
  • 【讨论】:

    • 我只是做了同样的事情——现在想弄清楚有什么不同。当我弄清楚时会更新。谢谢。
    • 找到了——我在 UIScrollView 的 layoutSubviews 中设置了 contentView.frame。我的愚蠢错误,感谢您调查。
    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2012-12-22
    • 2012-08-16
    相关资源
    最近更新 更多