Sie wissen, ios Entwicklung verwendet das MVC-Muster, den Inhalt, den Sie in einer Ansicht anzeigen oder die Zustände von UI-Widgets sollten mit Ihren Ansichtsmodellen binden, wie in Ihrem Fall können Sie ein Ansichtsmodell wie SwichViewModel
erstellen a BOOL-Eigenschaft isSwitchOn
, wenn Sie Ihre Tabellenansicht laden, aktivieren/deaktivieren Sie die Switch-Basis in der Eigenschaft isSwitchOn
des Ansichtsmodells und die Anzahl der aktivierten Schalter ist die Anzahl der Ansichtsmodelle, die isSwitchOn
ist JA. Unten ist mein Beispielcode:
//create the view model
@interface SwitchViewModel : NSObject
@property (assign, nonatomic) BOOL isSwitchOn;
@end
@interface TableViewController()
@property (strong, nonatomic) NSArray *switchViewModels;
@end
@implementation TableViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.switchViewModels = [self getData]; // you need to implement the getData method
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.switchViewModels.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
SwitchViewModel *model = self.switchViewModels[indexPath.row];
SwitchTVCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellID" forIndexPath:indexPath];
cell.switcher.on = model.isSwitchOn;
return cell;
}
- (NSInteger)getCountOfSwitchsOn{
NSArray *switchsOn = [self.switchViewModels filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"isSwitchOn == %@", @(YES)]];
return switchsOn.count;
}
@end
ist Ihre Tabellenansicht mit statischen Zellen oder dynamischen Zellen? und die Antworten werden sehr unterschiedlich sein. – MudOnTire
Im mit dynamischen Zellen. – macky12345
noch etwas Hilfe hier benötigt – macky12345