UITableViewのすべてのセルを取得したいのですが、[self.tableView visibleCells]を試しましたが、表示されているセルのみが返されます。私は自分のテーブルセルにスイッチを持っているので、それがオンかオフかをチェックするためにすべてのセルをループしたいです。これが私のコードです:
NSMutableArray *settings = [[NSMutableArray alloc] init];
NSArray *cells = [self.tableView visibleCells];
NSMutableArray * saveCodes = [[NSMutableArray alloc] init];
for(FilterTableCell *cusCell in cells){
if(cusCell.typeSwitch.isOn == TRUE){
[saveCodes addObject:[NSNumber numberWithInt:cusCell.locationTypeID]];
}
}
ご協力いただきありがとうございます
回答:
回答№1は0UITableViewを使用しているときは、あなたの記憶を最大限に活用する細胞。画面に描画できるセルの数をロードし、スクロールしているときにそれらを再び使用します。これが、可視セルだけを取得でき、それらすべてを取得できない理由です。
どのセルがオン/オフになっているかを知りたい場合は、別の配列を保持してセルの状態を確認するために使用する必要があります。
さらに、あなたの細胞はそれ自身を持ってはいけませんあなたがMVCパターンを使用しているならば、それはあなたのコントローラーによってだけ知られるべきであると述べます。たとえば、アクション、ブロック、デリゲートなどを使用できます。 Objective-Cはコミュニケーションをとる方法がたくさんあります。
回答№2の場合は0
UITableCellはMVCパターンのVです。 あなたはセルの状態を格納するモデルオブジェクトの観点からあなたのセルを考えるべきです。だからこそAppleは他の関連APIからUITableViewDataSourceを分離しました。