我正在尝试将 UIImageView 放置在 Scrollview 中。 我做了一些限制,将 UIImageView 置于 Scrollview 的中心。这可行,但如果我放大,位置会向右移动。所以例如我无法放大图像并看到图像的最右侧部分。
有什么想法为什么会发生这种情况,以及如何解决这个问题吗?
非常感谢!
编辑:
直接在滚动视图内定位或约束某些内容完全没有任何意义(除非您知道如何利用子级的派生高度来正确地为您工作)
UIScrollView 本身并不是 UIView。它提供了一个可在固定高度(UIScrollView 的高度)内滚动的子视图的包装器。
将滚动的内容将是 contentView 的高度(UIScrollView 的直接子级或内部所有项目的派生高度)。注意我在这里谈论的是垂直滚动视图。水平也有同样的原理。
如果要将 UIImageView 置于 UIScrollView 的“内容”内居中,请在 UIScrollView 下定义 one 子 UIView,并为其指定比 UIScrollView 高度更大的高度。然后,您可以尝试通过对 UIView 设置约束来使 UIImageView 居中。
-> UIScrollView
-> ContentView (UIView) //constraint this and pin edges to UIScrollView
-> UIImageView //constraint this with the ContentView, not UIScrollView
我遇到了同样的问题,并在 GitHub 上找到了解决方案:需要实现
UIScrollViewDelegate
,并在 scrollViewDidZoom
方法中将图像居中。