Scrollview 内的 UIImageView - 缩放时偏离中心

问题描述 投票:0回答:2

我正在尝试将 UIImageView 放置在 Scrollview 中。 我做了一些限制,将 UIImageView 置于 Scrollview 的中心。这可行,但如果我放大,位置会向右移动。所以例如我无法放大图像并看到图像的最右侧部分。

看起来像这样: enter image description here

有什么想法为什么会发生这种情况,以及如何解决这个问题吗?

非常感谢!

编辑:

此时的行为: enter image description here

它应该如何表现: enter image description here

ios swift uiimageview scrollview center
2个回答
1
投票

直接在滚动视图内定位或约束某些内容完全没有任何意义(除非您知道如何利用子级的派生高度来正确地为您工作)

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

0
投票

我遇到了同样的问题,并在 GitHub 上找到了解决方案:需要实现

UIScrollViewDelegate
,并在
scrollViewDidZoom
方法中将图像居中。

https://github.com/hyperoslo/Lightbox/blob/de59c814c69b23621cb6b6d5eb0f67a40d507ef1/Source/Views/PageView.swift#L248

© www.soinside.com 2019 - 2024. All rights reserved.