ios - UIScrollView + LargeTitle (iOS 11) - 滚动到顶部并显示大标题
<p><p>我使用以下代码滚动到 UICollectionView 的顶部:</p>
<pre><code>scrollView.scrollRectToVisible(CGRect(origin: .zero, size: CGSize(width: 1, height: 1)), animated: true)
</code></pre>
<p>但是,在 iOS 11 和 12 上,scrollView 仅滚动到顶部,而不会显示 <code>UINavigationBar</code> 的大标题(当 <code>prefersLargeTitle</code> 已设置为 <code>真的</code>。)</p>
<p><strong>如下所示:</strong>
<a href="/image/wK6Ei.png" rel="noreferrer noopener nofollow"><img src="/image/wK6Ei.png" alt="enter image description here"/></a> </p>
<p>我想要达到的结果:</p>
<p> <a href="/image/R3kRM.png" rel="noreferrer noopener nofollow"><img src="/image/R3kRM.png" alt="enter image description here"/></a> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>它按设计工作,您正在滚动到位置 <code>y = 0</code>,将您的 <code>controller</code> 分配为 <code>UIScrollView</code> 委托(delegate)并打印出来滚动偏移:</p>
<pre><code>override func scrollViewDidScroll(_ scrollView: UIScrollView) {
print(scrollView.contentOffset)
}
</code></pre>
<p>您将看到何时显示大标题并移动 ScrollViewa 但它会跳回大标题它不会打印 <code>(0.0, 0.0)</code> 但 <code>(0.0, -64.0)</code> 或 <code>(0.0, -116.0)</code> - 这与 <code>scrollView.adjustedContentInset</code> 的值相同,所以如果你想向上滚动并显示大标题你应该这样做:</p>
<pre><code>scrollView.scrollRectToVisible(CGRect(x: 0, y: -64, width: 1, height: 1), animated: true)
</code></pre></p>
<p style="font-size: 20px;">关于ios - UIScrollView + LargeTitle (iOS 11) - 滚动到顶部并显示大标题,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/51892948/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/51892948/
</a>
</p>
页:
[1]