gpt4 book ai didi

ios - 在用户看不到更改的情况下在出现之前重新加载 UICollectionView

转载 作者:行者123 更新时间:2023-11-29 10:37:33 26 4
gpt4 key购买 nike

我有一个 UICollectionView,我想在它显示之前重新加载它。 Collection View 源中的项目数量可能已更改,因此重新加载恰好添加了新项目或删除了不应再存在的项目。

在我的 View Controller 中我有:

  public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);

this.source.UpdateAvailableItems();
this.CollectionView.ReloadSections(new NSIndexSet(0));
}

除了如果项目被删除, Collection View 出现并且用户短暂地看到这些项目消失之外,这做了我想要的。添加新项目的情况类似,但要看到新项目的添加有点困难。

(ReloadData 基本上不起作用,这就是我使用 ReloadSections 的原因。参见:UICollectionView reloadData not functioning properly in iOS 7)

(每次源的项目更改时,我都无法真正重新加载 Collection View ,因为当它不可见时,每秒可能发生一百次)

有谁知道我可以在 Collection View 出现之前重新加载并完全呈现它的方法吗?用 UIView.PerformWithoutAnimation 包装 ReloadSections 调用也没有帮助。

答案:Tim Edward 解决方案的 C# 实现:

  public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);

this.source.UpdateAvailableItems();

UIView.PerformWithoutAnimation(() =>
{
this.CollectionView.PerformBatchUpdates(
() => this.CollectionView.ReloadSections(new NSIndexSet(0)),
null);
});
}

最佳答案

你试过类似的东西吗?

[UIView setAnimationsEnabled:NO];

[collectionView performBatchUpdates:^{

// Reload sections here

} completion:^(BOOL finished) {
[UIView setAnimationsEnabled:YES];
}];

关于ios - 在用户看不到更改的情况下在出现之前重新加载 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26144297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com