菜鸟教程小白 发表于 2022-12-12 13:36:07

ios - UITableView reloadRowsAtIndexPaths : 上消失的 UITableViewCell


                                            <p><p>我有一些从 XIB 文件加载的 UITableViewCell。一切都很好,直到我在单元格消失时调用 方法。当我调用 加载所有内容时,当我在 View 上下滚动单元格时,它也会重新出现。很奇怪。</p>

<p>我还注意到,当我调用 时,UITableView 不会尝试重用缓存的单元格,而是会尝试使用 cell = ; 获取一个新单元格;</p >

<p>这是我的代码:</p>

<pre><code>- (void)viewDidLoad
{
    ...
    // the objects from the XIB files are loaded onto an NSArray instance variable at viewDidLoad
    tableViewCells = [ loadNibNamed:@&#34;ProfileTableViewCell&#34; owner:nil options:nil];
    ...
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    int cellId = /* some logic to get the correct cellID */
    NSString *CellIdentifier = ;
    ProfileTableViewCell *cell = (ProfileTableViewCell*);
    if(cell == nil)
    {
      cell = ;
      // additional work to setup subviews for the cell
      ;
      ;
    }
}
</code></pre>

<p>以防万一这是我在 中所做的一些事情</p>

<pre><code>- (void)prepareSubviews
{
    ...
    ;
    ;
    ;
    ;
    ;
    .scale];
    ...
}
</code></pre>

<p>提前感谢可以帮助我的好人。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不确定这是你的问题,但你获取细胞的方式不是正常的方式。您应该在自己的 nib 中创建每种类型的单元格(具有唯一标识符),然后使用 registerNib:forCellReuseIdentifier: 注册 nib。在 cellForRowAtIndexPath 中,只需根据索引路径将所需的单元格出列即可,不要在 if (cell == nil) 子句中放入任何内容,因为这样做不会调用它。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UITableView reloadRowsAtIndexPaths : 上消失的 UITableViewCell,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18214008/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18214008/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UITableView reloadRowsAtIndexPaths : 上消失的 UITableViewCell