菜鸟教程小白 发表于 2022-12-12 14:47:01

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 &#43; 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]
查看完整版本: ios - UIScrollView &#43; LargeTitle (iOS 11) - 滚动到顶部并显示大标题