У меня есть пользовательский подкласс UITableViewCell. Я установил contentView моего подкласса ячейки
пользовательский класс UIView, в котором я переопределяю -drawRect: и выполняю все чертежи.
Кроме того, я устанавливаю cell.contentView.opaque = NO для достижения прозрачности в определенных областях ячейки (к сожалению, обратное изображение за столом должно показывать через каждую ячейку в определенных частях, чтобы добиться стилистического эффекта. Я знаю, что это производительность должна быть такой).
Проблема. Я по-прежнему вижу фоновый цвет синего градиента по умолчанию, который рисуется за моей ячейкой (в прозрачных областях), когда он выбран или подсвечен (нажат). Это заслоняет изображение за столом, что плохо.
Цель. Чтобы предотвратить появление синего градиентного фона, но все же сможете проверить свойства cell.isSelected и cell.isHighlighted в пределах -[MyContentView drawRect:], чтобы определить, как рисовать мой собственный пользовательский выбор/выделение.
Что я пробовал:
-
cell.selectionStyle = UITableViewCellSelectionStyleNoneимеет желаемый эффект, предотвращающий фоновый фон выбора синего градиента, но также предотвращает правильную установку свойствcell.isSelectedиcell.isHighlighted, что означает, что я не могу выполнить свой собственный выбор/выделить рисунок -
cell.selectionBackgroundView = nilиcell.backgroundView = nilв методе cell-initили-prepareForReuseне препятствует фону выбора синего градиента -
настройка
cell.selectionBackgroundView = nilв методе-[MyContentView -drawRect:]имеет желаемый эффект предотвращения фона выбора синего градиента, но это кажется очень janky -
overriding - [UITableViewCell setSelected: анимированный:] - не-op. это не имеет желаемого эффекта предотвращения фона выбора синего градиента.
