gpt4 book ai didi

ios - 如何维护CollectionView在不同Segment上的状态(Tab)

转载 作者:行者123 更新时间:2023-11-29 05:43:08 24 4
gpt4 key购买 nike

我将 Collection View 流布局添加为分段控件内的 subview 。该分割分为全部、新的、已使用的。我的问题是如何维护不同段上 Collection View 的状态。

我正在调用 API 来加载所有、新、已用段上的数据

另外,每次切换选项卡时,我都会调用 [collectionView reloadData] ,它会重新加载 Collection View ,但不完全是我之前在该特定段中留下的位置

例如,在 All Segment 中,我滚动了 10 - 15 个项目,然后切换到 New Segment 并滚动 3 个项目,现在如果我再次将选项卡切换到 所有 段,然后所有 段的位置也转到第三个位置

如何解决这个问题。感谢您的耐心阅读。任何帮助都会对我有很大帮助。

这是我用于切换段的示例代码

-(IBAction)changeSeg:(id)sender{
[collectionView reloadData];

if(segmentedControl.selectedSegmentIndex == 0){
atScrollPosition:UICollectionViewScrollPositionNone animated:false];
typeFlag = 0;
if ([inventoryDetails count] == 0 && totalInventoryCountForAll != 0) {
[self loadMore];
} else if (totalInventoryCountForAll == 0) {
[self setNoCarVisibility: true];
}
}
else if(segmentedControl.selectedSegmentIndex == 1){
typeFlag = 1;
if ([newInventory count] == 0 && totalInventoryCountForNew != 0) {
[self loadMore];
} else if (totalInventoryCountForNew == 0) {
[self setNoCarVisibility: true];
}
}
else if(segmentedControl.selectedSegmentIndex == 2){
typeFlag = 2;
if([usedInventory count] == 0 && totalInventoryCountForUsed != 0){
[self loadMore];
} else if (totalInventoryCountForUsed == 0) {
[self setNoCarVisibility: true];
}
}

}

最佳答案

所以,最后我得到了如下快速解决方案:

1).我为“All”、“New”、“Used”创建了三个 Collection View

2).为所有三个 Collection View 创建了所需的 socket 连接、数据源和委托(delegate)

3).诀窍是隐藏和显示当前选定片段的 Collection View 。

4).但我在这里面临一个小问题。第一个 Collection View (在我的例子中为“所有选项卡”)需要是界面构建器上的最后一项,然后只有在最初加载 Collection View 时才会显示它。

5).每当我切换选项卡时,我都会隐藏其他两个 Collection View 并显示当前选定的选项卡的 Collection View 。

这可能不是正确的解决方案。但暂时我这样做了。

关于ios - 如何维护CollectionView在不同Segment上的状态(Tab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56378496/

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