2013-10-25 1 views
0

У меня есть собственный подкласс UITableViewCell. Я настраивая метки, содержащиеся в клетке, установив некоторые атрибуты UILabel "внешний вид прокси s, следующим образом:Пользовательский текст на этикетке UITableViewCell не изменяется в ответ на отмену

[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil].textColor = [UIColor blackColor]; 
[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil].highlightedTextColor = [UIColor redColor]; 

Когда я выбираю ячейку в пользовательском интерфейсе, наклеек цвета изменяются, как и ожидалось, и код выполняет нажмите кнопку перехода к следующему контроллеру. Однако, когда я сую этот новый контроллер представления и вернуться к экрану с пользовательскими UITableViewCell с, выделенным цветом текста остается, даже если я отменив ячейку в коде следующим образом:

- (void)viewDidAppear:(BOOL)animated 
{ 
    if ([self.tableView indexPathForSelectedRow]) { 
     [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES]; 
    } 
    [super viewDidAppear:animated]; 
} 

Является ли это ошибка в iOS 7, или я делаю что-то неправильно?

ответ

0

Я не буду называть это ошибкой, но есть способ исправить ее.

-(void)viewWillDisappear:(BOOL)animated{ 

    [super viewWillDisappear:YES]; 

    if ([self.tableView indexPathForSelectedRow]) { 
    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES]; 
    } 

} 
+0

К сожалению, это не сработало для меня. –

0

Джейми, я столкнулся с такой же ситуацией. У меня есть UIView как contentViewUITableViewCell и UITableView находится в UIPopoverController. Выделение выделения не будет ясным, если я снова открою popover после его увольнения.

Я попробовал оба решения, упомянутые здесь, и, как вы говорите, оба не работают. Во время отладки я понял, что UITableView как-то теряет выделение и ничего не возвращает за indexPathForSelectedRow.

К сожалению, я не нашел очень хорошее решение. Я бы назвал это ошибкой iOS 7 как UITableView не ведет себя как раньше и как ожидалось.

Решение, которое я использовал, состояло в том, чтобы изменить цвет фона моего UIView вместо использования методов выбора UITableView и изменить его на цвет по умолчанию в viewWillDisappear.

Я все глаза, чтобы прочитать лучшее решение.

Смежные вопросы