首页 > 解决方案 > UIScrollView + LargeTitle (iOS 11) - 滚动到顶部并显示大标题

问题描述

我使用以下代码滚动到 UICollectionView 的顶部:

scrollView.scrollRectToVisible(CGRect(origin: .zero, size: CGSize(width: 1, height: 1)), animated: true)

UINavigationBar但是,在 iOS 11 和 12 上,scrollView 仅滚动到顶部,而不会显示(when prefersLargeTitlehas been set to true)的大标题。

这是它的样子: 在此处输入图像描述

我想要达到的结果:

在此处输入图像描述

标签: iosswiftuinavigationbarscrollviewpreferslargetitles

解决方案


它按设计工作,您正在滚动到 position y = 0,将您指定controllerUIScrollView委托并打印出滚动偏移量:

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    print(scrollView.contentOffset)
}

您将看到何时显示大标题并且您移动滚动视图 a 但是它会跳回大标题它不会打印(0.0, 0.0)但是(0.0, -64.0)(0.0, -116.0)- 这是相同的值scrollView.adjustedContentInset,所以如果您想向上滚动并显示大标题,您应该做:

scrollView.scrollRectToVisible(CGRect(x: 0, y: -64, width: 1, height: 1), animated: true)

推荐阅读