菜鸟教程小白 发表于 2022-12-13 09:34:27

ios - 为行数有限的 UITableView 禁用虚拟化(单元重用)


                                            <p><p>我有一个行数有限的 <code>UITableView</code>(比如说 20-30)。
是否可以禁用单元重用?</p>

<p> <a href="https://stackoverflow.com/questions/6443533/disable-cell-reuse-for-small-fixed-size-uitableview" rel="noreferrer noopener nofollow">Most of solutions</a>建议不要调用<code>dequeueReusableCellWithIdentifier</code>。
但在这种情况下,每次 <code>UITableViewSource</code> 需要新单元格时 - 都会创建该单元格的新实例。</p>

<p>我想要的是,一旦我一直向下滚动并看到所有 20-30 个单元格,在返回的路上不应创建新单元格。</p>

<p>有可能吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>即使您使用唯一标识符,也不能指望重用池大小足以存储您尝试执行的 20-30 个唯一单元格。</p>

<p>您需要在数组或字典中保存自己对单元格的引用,并使用它来获取 <code>cellForRowAtIndexPath</code> 中的单元格 - 例如 -</p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *cellIdentifier=;

    UITableViewCell *cell=self.cellDictionary;

    if (cell == nil) {
          cell=[init];// Do whatever is required to allocate and initialise your cell
          self.cellDictionary=cell;
    }

    // Any other cell customisation

    return cell;
}
</code></pre>

<p>除非创建单元非常昂贵,否则重复使用通常是更好的方法</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为行数有限的 UITableView 禁用虚拟化(单元重用),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26329332/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26329332/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为行数有限的 UITableView 禁用虚拟化(单元重用)