#iphone #uitableview #didselectrowatindexpath
#iPhone #uitableview #didselectrowatindexpath
Вопрос:
Возможно ли заставить одну ячейку в UITableView иметь режим включения / выключения? В принципе, когда я нажимаю на ячейку, она становится зеленой, чего я и хочу. Это не переходит к другому ViewController или чему-либо еще. Но затем, когда я снова нажимаю на ту же ячейку в том же виде, я хочу, чтобы зеленый исчез и вернулся к своему предыдущему цветовому состоянию.
Вот как у меня есть мой didSelectRowAtIndexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *selectedPhrase = [dataTable objectAtIndex:indexPath.row];
[self setCurrentPhrase:selectedPhrase];
}
Это кажется простым вопросом. Я знаю, что могу перейти к [tableView deselectRowAtIndexPath:indexPath animated:YES];
, но это просто делает ее неосвещенной сразу после того, как я нажимаю на нее.
Спасибо!
Аарон
Ответ №1:
вы могли бы изменить цвет фона UITableViewCell
при выборе, поэтому вы можете использовать BOOL, который подскажет вам, чем заливать фон (зеленым или просто прозрачным цветом).
Получите доступ к вашей ячейке с помощью приведенного ниже метода
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
Используйте приведенный ниже код в качестве справочного.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *selectedPhrase = [dataTable objectAtIndex:indexPath.row];
[self setCurrentPhrase:selectedPhrase];
MyCutsomCell* myCell= (MyCutsomCell*)[tableView cellForRowAtIndexPath:indexPath];
if(myCell.isGreen)
{
//Change backgroundColor to Green
}
else
{
//Clear backgroundColor
}
myCell.isGreen = !myCell.isGreen;
}
Комментарии:
1. Это было хорошее предложение, использовал кое-что из этого, чтобы заставить его работать. Спасибо!