2016-06-26 9 views
0

3つのセクションを持つナビゲーションバーにセグメント化されたコントロールを持つViewコントローラがあります。 3つのセクションはすべて同じ種類のセルを表示しますが、データは変更されます。 3つのコンテナを持ち、どのデータを画面上に表示するかを隠す/表示する方が効率的ですか、別のデータでテーブルをリロードする必要がありますか?セグメント化されたコントロールコンテナビューとUITableViews

答えて

3

異なるデータでテーブルをリロードする方がずっと効率的です。

あなたは、各デリゲートメソッドのためにそのような何かを行うことができます。

スウィフトバージョン

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

他の方法は、あなたがすべてのifステートメントを避けるsegmentedControlインデックスに関してソース配列を変更することです。

私はいくつかのプロジェクトでこの種の機能を使用しており、パフォーマンスが良好であることを確認できます。

希望すると便利です。

+1

申し訳ありません私はObjective-Cバージョンを提供しているので私はダウン投票したと思いますので、Swiftバージョンで編集しました。 – AnthoPak

+0

あなたが投票した理由は分かりません。どうもありがとうございます! –