Настройка поведения выбора UITableViewCell - PullRequest
0 голосов
/ 23 января 2019

Я реализую пользовательские визуальные эффекты, когда пользователь выбирает строку в UITableView. Я переопределил UITableViewCell.setSelected(), но я называю это в своем подклассе, он вносит некоторые изменения в внешний вид представления содержимого перед добавлением selectedBackgroundView в иерархию, например, устанавливает непрозрачность в false. Я не хочу, чтобы представление контента и его подпредставления были непрозрачными, поэтому я подумал, что могу избежать вызова super.setSelected при переопределении, но тогда это нарушает поведение выбора / отмены выбора.

  • Есть ли способ избежать изменения по умолчанию UI на UITableViewCell.setSelected() без разрыва ячейки selection/deselection? Меня удивляет, что встроенные изменения пользовательского интерфейса для ячеек selecting/deselecting настолько переплетены с отслеживанием логики / состояния, что заставляет selection/deselection работать внутри setSelected()

  • В целом, есть ли какие-либо советы по отладке или трассировке, которые я могу использовать, чтобы увидеть, что именно происходит, с точки зрения того, какие обновления происходят с представлениями, при вызове чего-то вроде UITableViewCell.setSelected(), поэтому я могу имитировать это без вызов метода базового класса (я понимаю, что это может порвать с новыми версиями iOS)

Спасибо,

Neal

1 Ответ

0 голосов
/ 23 января 2019

Вместо использования метода выбора ячеек вы можете попробовать использовать метод выделения.

Шаг 1: Сделайте выбор ячейки табличного представления равным none

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Шаг 2: Переопределить выделенный метод набора ячеек для настройки выбора ячеек

 - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
    {
          if (highlighted) 
          {
          }
          else
          {
          }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...