菜鸟教程小白 发表于 2022-12-13 05:19:23

ios - deleteRowsAtIndexPaths 重叠问题


                                            <p><p>试图成为 ios7 风格,我在点击表格中的单元格时将 UIPickerView 插入到 UITableView 中。这工作正常并且动画效果很好。但是,当我通过调用 deleteRowsAtIndexPaths 收回单元格时会出现问题。</p>

<p>我遇到了“出血”/重叠,其中选择器将其中一个单元格隐藏在表格 View 的下方。查看屏幕截图。</p>

<p>我没有做任何 super 定制的事情,所以我想知道这是否是 iOS7 的错误。所有单元格都有纯色背景(白色)。</p>

<p>任何帮助将不胜感激。谢谢!</p>

<p><strong>点击第一行</strong>
<img src="/image/ZcRZr.png" alt="This is what it looks like after tapping the top row to reveal the picker"/> </p>

<p><strong>这是收回时的中间动画。注意底部单元格的重叠和选择器溢出</strong>
<img src="/image/Vk5LW.png" alt="Strange overlap"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不知道为什么,但在我看来,选择器单元格覆盖了“选择产品”下方的单元格。如果确实如此,一种解决方法是显式设置单元格的 z 顺序,将选取器单元格放在所有其他单元格的下方:</p>

<pre><code>#import &lt;QuartzCore/QuartzCore.h&gt;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = ...;// your logic for getting a cell
    BOOL isPickerCell = ...;// your logic for identifying if this is the picker cell
    cell.layer.zPosition = isPickerCell ? 0 : 1;
}
</code></pre>

<p>如果选择器靠近表格底部,它仍然可以显示在最后一个单元格下方,因为那里没有任何东西可以覆盖它。例如,如果“选择产品”是最后一个单元格。您可以通过在底部插入空白单元格来解决此问题。这是具有不同高度的单元格的普遍问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - deleteRowsAtIndexPaths 重叠问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19691910/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19691910/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - deleteRowsAtIndexPaths 重叠问题