изменить цвет uitableviewcell для выбранной ячейки в секционированной таблице - PullRequest
2 голосов
/ 03 июня 2011

У меня есть секционное представление таблицы с проверкой выбора для каждого раздела (каждый раздел допускает только один выбор, такой как переключатель).

Теперь я хочу изменить цвет ячейки, которую имеет пользовательselected (не для доли времени, изменяющей цвет с анимацией с использованием свойства selectedBackgroundView ячейки).

Помогите.

Спасибо.

Ответы [ 8 ]

16 голосов
/ 03 июня 2011
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.contentView.backgroundColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0];
5 голосов
/ 03 июня 2011

Используйте этот код ........

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
     cell.contentView.backgroundColor = [UIColor yellowColor];
 }

Счастливое кодирование ....

2 голосов
/ 08 марта 2013

, если вы хотите изменить стиль выделения конкретной ячейки в табличном представлении, тогда может помочь следующий код. Поместите это в метод - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath и внесите необходимые изменения

// x is the numbered location of that particular cell appearing in table view
if(indexPath.row==x) 
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    // UITableViewCellSelectionStyleBlue or UITableViewCellSelectionStyleNone
    cell.selectionStyle=UITableViewCellSelectionStyleGray;  
}
1 голос
/ 18 июля 2013

Если вы хотите изменить только фон, когда он выбран, у вас есть вид, зарезервированный для этого в ячейке:

UIView *selectionBackground = [[UIView alloc] init];

selectionBackground.backgroundColor = A_COLOR;

myCell.selectedBackgroundView = selectionBackground;

Где A_COLOR - UIColor.Вы можете установить это в вашем cellForRowAtIndexPath.

1 голос
/ 03 июня 2011

Используйте это в табличном представлении didSelectRowAtIndexPath: метод делегата

 cell.selectionStyle = UITableViewCellSelectionStyleBlue;
1 голос
/ 03 июня 2011

когда пользователь выбирает строку

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

вызывается.Вы можете рассмотреть возможность реализации этого метода в своем делегате.

0 голосов
/ 10 декабря 2014

попробуйте это:

[cell setBackgroundColor:[UIColor colorWithRed:55.0/255.0f green:255.0/255.0f blue:178.0/255.0f alpha:1]];
0 голосов
/ 03 июня 2011

A. Если цвет вашей ячейки установлен прозрачным (clearColor), вы можете просто установить cell.selectedBackgroundView.backgroundColor.

Для динамического использования это можно сделать в -tableView:didSelectRowAtIndexPath: (вы можете менять цвет каждый раз, когда пользователь выбирает строку). В противном случае в -tableView:cellForRowAtIndexPath: - либо при настройке ячейки (после удаления из очереди или создания), чтобы разрешить изменение цвета, например, каждый раз, когда вы вызываете reloadData), или когда вы создаете таблицу (если она не была удалена из очереди - в основном постоянные значения цвета).

B. Если цвет вашей ячейки не установлен прозрачным - установите цвет в -tableView:didSelectRowAtIndexPath:, как упоминалось в большинстве других комментариев. Но, используя этот метод, не забудьте восстановить цвет ранее выбранной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...