分段控制容器视图和UITableViews

时间:2016-06-26 15:59:56

标签: ios xcode swift uitableview uicontainerview

我在导航栏中有一个带有分段控件的View控制器,有3个部分。所有三个部分将显示完全相同类型的单元格,但数据将发生变化。拥有3个容器并隐藏/显示它们以匹配屏幕上的数据是否更有效,或者应该使用不同的数据重新加载表格?

1 个答案:

答案 0 :(得分:3)

使用不同的数据重新加载表会更高效。

您可以为每个委托方法执行类似的操作:

  

Swift版

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    if segmentedControl.selectedSegmentIndex == 0 {
        return favoris.count
    } else if segmentedControl.selectedSegmentIndex == 1 {
        return somethingElse.count
    } else {
        return somethingElse.count
    }
}
  

目标C版

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    if (segmentedControl.selectedSegmentIndex == 0)
        return [favoris count];
    else if (segmentedControl.selectedSegmentIndex == 1)
        return [somethingElse count];
    else 
        return [somethingElse count];
}

另一种方法是只更改有关segmentedControl索引的源数组,这将避免使用所有if语句。

我在某些项目中使用这种功能,我可以确保表现良好。

希望这有帮助!