如何获取UIScrollview中居中(或用户可见)的视图?

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

我有一个具有水平分页的 UIScrollview,其中有五个不同的视图。这些都按照要求完美滚动。现在我的屏幕顶部还有五个按钮,在按钮操作时,滚动视图将滚动到所需的页面(例如,如果用户点击按钮 3,滚动视图将滚动到第三页)。所以现在我想要一个小视图作为选择器视图(也就是说,如果用户滚动到下一页,选择器视图应该在滚动过程中移动到下一个按钮)就在五个按钮下方。这在某种程度上也工作得很好,但有一个小问题,特别是在 iPad 设备上。问题是我的选择器视图没有在所需按钮的中心完成。它如何位于所需按钮的中心。我使用下面的代码来移动选择器视图。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let newxPosition = scrollView.contentOffset.x
    if UIDevice().userInterfaceIdiom == .phone {
        UIView.animate(withDuration: 0.1) { [self] in
            self.movingSelectorView.frame.origin.x = newxPosition/5 + (movingViewXConstant ?? 25)
        }
    } else if UIDevice().userInterfaceIdiom == .pad {
        UIView.animate(withDuration: 0.1) { [self] in
            self.movingSelectorView.frame.origin.x = newxPosition/5 + (movingViewXConstant ?? 75)
        }
    }
}

请查看上传的图片以便更好地理解。 这五个按钮不在滚动视图中,并且 movingSelectorView 也不在滚动视图内。

ios swift uiscrollview uiscrollviewdelegate
© www.soinside.com 2019 - 2024. All rights reserved.