У меня есть пользовательский подкласс 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
в методе ячейки -init
или -prepareForReuse
не препятствует выделению синего градиента фона
настройка cell.selectionBackgroundView = nil
в методе -[MyContentView -drawRect:]
имеет ли желаемый эффект предотвращения выделения синего градиента фона, но это выглядит очень излишне
переопределение - [UITableViewCell setSelected: animated:] для запрета. это не дает желаемого эффекта предотвращения выделения синего градиента фона