菜鸟教程小白 发表于 2022-12-13 05:53:33

ios - 出队的 UICollectionViewCell 未刷新


                                            <p><p>我有一个带有水平滚动单元格的 <code>UICollectionView</code> 的应用程序(一次只显示一个单元格)。每个单元格都有一个 <code>UITableView</code>,它在每个 <code>UITableViewCell</code> 中显示内容(URL 链接)。 <br/>
问题是 <code>UICollectionView</code> 的前两个单元格显示正确的内容,但从第三个单元格开始,内容是从出列单元格显示的。仅当用户向下滚动然后向上滚动到顶部时,才会显示出列单元格的 <code>UITableView</code> 上的正确内容。<br/>
例如,第三个单元格的内容是来自第一个单元格的内容。
该单元格是托管 <code>UITableView</code> 的自定义 <code>UICollectionViewCell</code>。自定义单元格实现了<code>UITableViewDataSource</code>、<code>UITableViewDelegate</code>。<br/>
我搜索了不同的论坛和网站,找到了刷新的解决方案。
我尝试将 <code></code> 添加到 <code>-cellForItemAtIndexPath:</code> 方法,但它进入了恒定循环。我知道那不是正确的地方,但我没有任何其他方法会导致刷新(仅滚动单元格会加载下一个单元格的内容)。<br/>
有人可以帮我解决这个问题吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您遗漏了一些关于出队的事实。<br/>
当您 3d 自定义 <code>UICollectionViewCell</code> 出列时,它不会像第一次显示时那样分配。相反,您的 Collection View “重用”第一个单元格来显示 3d。 <code>-(void)prepareForReuse</code> 是清除自定义单元格内容的最佳时机。如果您覆盖它并清除它的内容,<code>-cellForItemAtIndexPath:</code> 将出列“清除”单元格,您可以进一步自定义。<br/>
但是,我不完全知道如何“清除”tableView,不确定是否可行。您必须在 <code>-cellForItemAtIndexPath:</code> 中的 tableView 上 <code>reloadData</code>。示例:</p>

<pre><code>- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath
{
    MyCVCell *cell = ;
    cell.arrayOfURLsForDisplay = self.arrayOfArraysOfURLs;
    ;
    return cell;
}
</code></pre>

<p>我的意思是你的 viewController 中有一些 <code>arrayOfArraysOfURLs</code> 并且你从一些 <code>arrayOfURLsForDisplay</code></p> 在你的自定义单元格中显示 URL</p>
                                   
                                                <p style="font-size: 20px;">关于ios - 出队的 UICollectionViewCell 未刷新,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/20928250/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/20928250/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 出队的 UICollectionViewCell 未刷新