Ich habe die folgende Implementierung, wo Benutzer in der Lage, so viele Elemente wie er möchte auswählen kann.Häkchen bei tableView
Ich könnte Kontrollkästchen sehen, sobald Benutzer das Element auswählt, jedoch wenn Benutzer nach oben oder unten scrollen, gibt es ein seltsames Verhalten, weil ich sehe andere Elemente ausgewählt sind, auch wenn es nicht ausgewählt ist.
Zum Beispiel, wenn ich 3 Elemente in der Reihenfolge wähle, wenn ich nach unten scrolle, könnte ich das gleiche Muster (3 Elemente in der Reihenfolge) ausgewählt sehen. ist es etwas mit dequeueReusableCellWithIdentifier
verbunden? Wenn ja, was mache ich falsch?
- (void)viewDidLoad {
[super viewDidLoad];
self.comboTableView.allowsMultipleSelection = YES;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[comboTableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
[comboTableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return movies.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return ((Section*)movies[section]).movies.count ;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.textLabel.text = ((Section*)movies[indexPath.section]).movies[indexPath.row];
return cell;
}
dupliziert https://stackoverflow.com/questions/23727255/multiple-checkmark-when-row-selected-in-uitableview-ios – Bejibun