0
3つのセクションを持つナビゲーションバーにセグメント化されたコントロールを持つViewコントローラがあります。 3つのセクションはすべて同じ種類のセルを表示しますが、データは変更されます。 3つのコンテナを持ち、どのデータを画面上に表示するかを隠す/表示する方が効率的ですか、別のデータでテーブルをリロードする必要がありますか?セグメント化されたコントロールコンテナビューとUITableViews
3つのセクションを持つナビゲーションバーにセグメント化されたコントロールを持つViewコントローラがあります。 3つのセクションはすべて同じ種類のセルを表示しますが、データは変更されます。 3つのコンテナを持ち、どのデータを画面上に表示するかを隠す/表示する方が効率的ですか、別のデータでテーブルをリロードする必要がありますか?セグメント化されたコントロールコンテナビューとUITableViews
異なるデータでテーブルをリロードする方がずっと効率的です。
あなたは、各デリゲートメソッドのためにそのような何かを行うことができます。
スウィフトバージョン
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インデックスに関してソース配列を変更することです。
私はいくつかのプロジェクトでこの種の機能を使用しており、パフォーマンスが良好であることを確認できます。
希望すると便利です。
申し訳ありません私はObjective-Cバージョンを提供しているので私はダウン投票したと思いますので、Swiftバージョンで編集しました。 – AnthoPak
あなたが投票した理由は分かりません。どうもありがとうございます! –