Я реализую функцию флажка контакта в своем UITableView, используя следующий код.Задача C - Проблемы с флажком TableView с помощью разделов
Проблема, с которой я столкнулась, заключается в том, что при проверке нескольких пользователей, а затем прокручивании вверх/вниз по таблице, пользователи, которые не должны быть отключены, отображаются как отмеченные, и наоборот.
Я предполагаю, что это имеет какое-то отношение к ошибке в создании моей ячейки, но я не совсем уверен, что.
- (void)viewDidLoad {
...
self.checkedUsers = [[NSMutableArray alloc] init];
for (int i=0; i<self.allContacts.count; i++) {
[self.checkedUsers insertObject:@"FALSE" atIndex:i];
}
...
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *simpleTableIdentifier = @"SocietyContactCell";
SocietyContactCell *cell = (SocietyContactCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SocietyContactCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
BOOL checked = [[self.checkedUsers objectAtIndex:indexPath.row] boolValue];
UIImage *image = (checked) ? [UIImage imageNamed:@"checkedContact.png"] : [UIImage imageNamed:@"uncheckedContact.png"];
[cell.checkButton setBackgroundImage:image forState:UIControlStateNormal];
[cell.checkButton addTarget:self action:@selector(buttonPressedAction:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)buttonPressedAction:(id)sender
{
UIButton *button = (UIButton *)sender;
int row = button.tag;
BOOL checked = [[self.checkedUsers objectAtIndex:row] boolValue];
[self.checkedUsers removeObjectAtIndex:row];
[self.checkedUsers insertObject:(checked) ? @"FALSE":@"TRUE" atIndex:row];
UIImage *newImage = (checked) ? [UIImage imageNamed:@"uncheckedContact.png"] : [UIImage imageNamed:@"checkedContact.png"];
[button setBackgroundImage:newImage forState:UIControlStateNormal];
}
EDIT: теперь я понимаю, что проблема, скорее всего, исходя из моего использования разделов в этом TableView. Контакты сортируются в алфавитном порядке, что приводит к портированию моих тегов.
Как бы решить эту проблему с помощью разделов?
Где вы инициализировать массив itsToDoChecked? –
@ ClausBönnhoff извините, я отредактировал код –