我正在将集合视图流布局添加为分段控件中的子视图。该细分被归类为All, New, Used
。
我的问题是如何在不同的细分中维护集合视图的状态。
我正在进行API调用以在All, New, Used
段上加载数据
另外,每次切换标签时,我都会调用[collectionView reloadData]
,它会重新加载集合视图,但不完全是我在该特定段中之前离开的位置
例如,在All
段中,我滚动了10-15个项目,然后我切换到New
段,并滚动了3个项目,现在,如果我再次将Tab键切换到All
段,则位置All
的细分受众群也进入了第三位置
如何解决。感谢您耐心阅读。任何帮助都会对我有很大帮助。
这是我用于切换细分的示例代码
-(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];
}
}
}
答案 0 :(得分:0)
在reloadData之后将选项卡scrolltoIndepath切换时,可能可以保存当前可视单元格的索引路径。 希望对您有帮助。...
修改 当前索引路径分别用于3个标签。因此,将不会有一个变量,而是每个选项卡都有3个indexpath变量,一旦选项卡切换,将管理相应var中的值,然后以相同的方式重新命名。
例如currentAllIndexpath,currentNewIndexpath等。
答案 1 :(得分:0)
所以,最终我得到了如下的快速解决方案:
1)。我为所有,新建,二手创建了三个集合视图
2)。为所有三个集合视图创建了必需的出口连接,数据源和委托
3)。诀窍是隐藏并显示当前选定细分的集合视图。
4)。但是我在这里面临一个小问题。第一个“集合视图”(在我的情况下为“所有选项卡”)必须是“界面”构建器上的最后一个项目,然后只有在最初加载集合视图时才会显示。
5)。每当我切换选项卡时,我都会隐藏其他两个集合视图并显示当前选择的选项卡的“集合”视图。
这可能不是正确的解决方案。但是暂时我做到了。