Поскольку ячейка 'custom', я предполагаю, что вы создали подкласс.
Во-первых, UITableViewCellSelectionStyleBlue
не является UITableViewCellStyle, это стиль выбора, поэтому его не следует использовать в методе -init
, но его значение может совпадать с UITableViewCellStyle
.
Кроме того, чтобы отредактировать ячейку при выделении, необходимо переопределить метод -setSelected:animated:
.Более того, вам нужно установить для переменной textField textColor
ячейки белый цвет при выделении и наоборот - синий.
- (void) setSelected:(BOOL) selected animated:(BOOL) animated {
self.textField.textColor = (selected == YES ? [UIColor whiteColor] : [UIColor blueColor]);
[super setSelected:selected animated:animated];
}
В противном случае лучше всего вызывать метод в методе -tableView:didSelectRowAtIndexPath:
.
- (void) tableView:(UITableView *) _tableView didSelectRowAtIndexPath:(NSIndexPath *) _indexPath {
[self rowSelected:_indexPath];
}
- (void) rowSelected:(NSIndexPath *) indexPath {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
BOOL isSelected = cell.isSelected;
[(UITextField *) [cell viewWithTag:kTextFieldTag] setTextColor:(isSelected == YES ? [UIColor whiteColor] : [UIColor blueColor])];
}