Изменить подсветку определенных подпредставлений в UITableViewCell - PullRequest
3 голосов
/ 25 ноября 2011

Можно ли исключить выделение определенных подпредставлений в UITableViewCell или изменить их реализацию выделения?

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

Ответы [ 4 ]

2 голосов
/ 30 апреля 2012

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

1 голос
/ 10 мая 2014

В iOS 6 вы можете использовать 2 метода в UITableViewDelegate для настройки подсветки для ячейки, а также для ее подпредставлений:

- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [cell setBackgroundColor:[UIColor lightGrayColor]];
}

- (void)tableView:(UITableView *)tableView didUnhighlightRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [UIView animateWithDuration:0.5f animations:^{
        [cell setBackgroundColor:[UIColor whiteColor]];
    }];
}

Я не показывал код для изменения подпредставлений.

Но вы можете сделать то же самое, как настроить для каждой ячейки, используя ячейку viewWithTag для доступа к подпредставлению, а затем изменить фон или любые другие свойства.

0 голосов
/ 04 октября 2018

для того, чтобы иметь настраиваемое поведение выделения в ячейке табличного представления, переопределите метод setHighlighted и выделенный анализ: false в методе super и настройте, укажите, какие представления должны менять цвет, основываясь на свойстве highlight ниже

0 голосов
/ 09 января 2014

Вы не можете удалить некоторые подпредставления из анимации, но вы можете изменить некоторые варианты поведения следующим образом:

Избегайте UITableViewCell делать анимацию выделения, как это:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

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

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    [cell setBackgroundColor:[UIColor purpleColor]];

    [UIView animateWithDuration:0.5f animations:^{
            [cell setBackgroundColor:[UIColor clearColor]];
    }];

}

У меня был простой UITableView, и он работал так, как мне нужно.

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