菜鸟教程小白 发表于 2022-12-13 06:14:25

ios - 更改 UITableView 节标题的默认滚动行为


                                            <p><p>我有一个包含两个部分的 UITableView。这是一个简单的表格 View 。我正在使用 viewForHeaderInSection 为这些标题创建自定义 View 。到目前为止,一切顺利。</p>

<p>默认的滚动行为是当遇到一个部分时,部分标题保持锚定在导航栏下方,直到下一个部分滚动到 View 中。</p>

<p>我的问题是:我可以更改默认行为,以使节标题不会停留在顶部,而是在导航栏下方滚动其余节行?</p>

<p>我是否遗漏了一些明显的东西?</p>

<p>谢谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我解决这个问题的方法是根据<code>UITableViewControllerDelegate</code>中的<code>contentInset</code>调整<code>contentOffset</code>(扩展<code>UIScrollViewDelegate</code></code>) 像这样:</p>

<pre><code>- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
       CGFloat sectionHeaderHeight = 40;
   if (scrollView.contentOffset.y&lt;=sectionHeaderHeight&amp;&amp;scrollView.contentOffset.y&gt;=0) {
       scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
   } else if (scrollView.contentOffset.y&gt;=sectionHeaderHeight) {
       scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
   }
}
</code></pre>

<p>这里唯一的问题是它在滚动回到顶部时会失去一点反弹。</p>

<hr/>

<p><em>{注意:“40”应该是您的第 0 节标题的确切高度。如果您使用大于第 0 节标题高度的数字,您会看到手指感觉受到影响(尝试像“1000”,您会看到弹跳行为在顶部有点奇怪)。如果数字与您的第 0 节标题高度匹配,则手指感觉似乎是完美或接近完美。}</em></p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 更改 UITableView 节标题的默认滚动行为,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/4600816/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/4600816/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 更改 UITableView 节标题的默认滚动行为