【问题标题】:Segmented Control Container View and UITableViews分段控件容器视图和 UITableViews
【发布时间】:2016-06-26 15:59:56
【问题描述】:

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

【问题讨论】:

    标签: ios xcode swift uitableview uicontainerview


    【解决方案1】:

    用不同的数据重新加载表会更有效率。

    你可以为每个委托方法做类似的事情:

    斯威夫特版本

    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
        }
    }
    

    Objective 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 语句。

    我在一些项目中使用了这种功能,我可以保证性能很好。

    希望这会有所帮助!

    【讨论】:

    • 抱歉,我认为我被否决了,因为我提供了 Objective-C 版本,所以我使用 Swift 版本进行了编辑。
    猜你喜欢
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多