Я создал обычай UITableViewCell
. Представление таблицы показывает данные в порядке. Я застреваю в том, что когда пользователь касается ячейки табличного представления, я хочу показать цвет фона ячейки, отличный от значений по умолчанию [синий цвет], чтобы выделить выделение ячейки. Я использую этот код, но ничего не происходит:
cell.selectedBackgroundView.backgroundColor=[UIColor blackColor];
Нет необходимости в пользовательских ячейках. Если вы хотите изменить только выбранный цвет ячейки, вы можете сделать это:
Objective-C:
Swift:
источник
Табличное представление Цвет фона выбора ячейки может быть установлен через раскадровку в Интерфейсном Разработчике:
источник
Если у вас есть сгруппированная таблица с одной ячейкой на раздел, просто добавьте эту дополнительную строку в код:
bgColorView.layer.cornerRadius = 10;
Не забудьте импортировать QuartzCore.
источник
Swift 3: для меня это сработало, когда вы положили его в
cellForRowAtIndexPath:
методисточник
awakeFromNib()
метод (в случае пользовательской ячейки).Следующее работает для меня в iOS 8.
Я должен установить стиль выбора
UITableViewCellSelectionStyleDefault
пользовательский цвет фона работал. Если любой другой стиль, пользовательский цвет фона будет игнорироваться. Кажется, что в поведении произошли изменения, поскольку в предыдущих ответах стиль должен быть установлен на none.Полный код ячейки выглядит следующим образом:
источник
Создайте пользовательскую ячейку для вашей ячейки таблицы и в коде пользовательской ячейки. Поместите код ниже, он будет работать нормально. Вам нужно поместить желаемое цветное изображение в
selectionBackground
UIImage.источник
Расширение Swift 3.0
cell.selectionColor = UIColor.FormaCar.blue
источник
@IBInspectable
над вар, если хочешь.@IBDesignable
не полезно для этого.Нам нужно установить выбранный фоновый вид в этом методе.
источник
Если вы хотите добавить свой выделенный цвет в свою ячейку (а ваша ячейка содержит кнопки, метки, изображения и т. Д.), Я сделал следующие шаги:
Например, если вы хотите выбрать желтый цвет:
1) Создайте вид, который подходит для всех ячеек с непрозрачностью 20% (с желтым цветом), например, backgroundselectedView
2) В контроллере клетки напишите это:
источник
В Swift 4 вы также можете установить цвет фона вашей ячейки таблицы глобально (взято отсюда ):
источник
Если вы используете пользовательский TableViewCell, вы также можете переопределить
awakeFromNib
:источник
Еще один совет, как Кристиану показывать фон с закругленными углами для сгруппированной таблицы.
Если я использую
cornerRadius = 10
для ячейки, он показывает округленный фон четырехугольника. Это не то же самое с пользовательским интерфейсом по умолчанию для табличного представления.Итак, я думаю о простом способе решить его с помощью cornerRadius . Как видно из приведенных ниже кодов, проверьте расположение ячейки (верхний, нижний, средний или верхний нижний) и добавьте еще один подслой, чтобы скрыть верхний или нижний угол. Это просто показывает точно такой же вид с фоном выбора представления таблицы по умолчанию.
Я проверил этот код с iPad
splitterview
. Вы можете изменить положение рамки patchLayer, как вам нужно.Пожалуйста, дайте мне знать, если есть более простой способ достичь того же результата.
источник
Хочу отметить, что редактор XIB предлагает следующие стандартные опции:
Раздел: синий / серый / нет
(правая колонка с опциями, 4-я вкладка, первая группа «Ячейка табличного представления», 4-я подгруппа, 1-й из 3 элементов гласит «Выбор»)
Вероятно, то, что вы хотите сделать, может быть достигнуто путем выбора правильного стандартного варианта.
источник
В соответствии с пользовательским цветом для выбранной ячейки
UITableView
, отличное решение в соответствии с ответом Maciej SwicЧтобы добавить к этому, вы объявляете ответ Swic в конфигурации Cell, обычно под:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
А для дополнительного эффекта вместо системных цветов вы можете использовать значения RGB для пользовательского цветового оформления. В моем коде вот как я этого добился:
Дайте мне знать, если это работает и для вас. Вы можете связываться с
cornerRadius
номером для эффектов на углах выбранной ячейки.источник
У меня немного другой подход, чем у всех остальных, который отражает выбор на ощупь, а не после того, как его выбрали. У меня есть подкласс UITableViewCell. Все, что вам нужно сделать, это установить цвет фона в сенсорных событиях, который имитирует выбор при касании, а затем установить цвет фона в функции setSelected. Установка цвета фона в функции selSelected позволяет отменить выбор ячейки. Обязательно передайте событие касания супер, иначе ячейка не будет действовать так, как если бы она была выбрана.
источник
Чтобы добавить фон для всех ячеек (используя ответ Maciej):
источник
Переопределить
UITableViewCell
этоsetSelected
тоже работает.источник
для тех, кто просто хочет избавиться от выбранного по умолчанию серого фона, поместите эту строку кода в функцию cellForRowAtIndexPath:
источник
для Swift 3.0:
источник
Я использую подход ниже и работает нормально для меня,
источник
Свифт 4+:
Добавьте следующие строки в ячейку таблицы
Наконец, это должно быть так, как показано ниже
источник
Вот важные части кода, необходимые для сгруппированной таблицы. Когда выбрана любая из ячеек в разделе, первая строка меняет цвет. Если исходный параметр cellselectionstyle не установлен равным none, то происходит двойная перезагрузка, когда пользователь щелкает row0, где ячейка меняется на bgColorView, затем исчезает и снова загружает bgColorView. Удачи и дайте мне знать, если есть более простой способ сделать это.
источник
В случае пользовательского класса ячейки. Просто переопределите:
источник
Легко, когда стиль табличного представления прост, но в групповом стиле это небольшая проблема, я решаю это следующим образом:
отметил kGroupTableViewCellWidth, я определяю его как 300, это ширина ширины ячейки представления таблицы группы в iPhone
источник
Убедитесь, что вы использовали вышеуказанную строку, чтобы использовать эффект выбора
источник
источник
Я использую iOS 9.3 и настройка цвета через раскадровку или настройка
cell.selectionStyle
не работает для меня, но код ниже работал:Я нашел это решение здесь .
источник
Попробуйте следующий код.
// Swift Version:
источник
Swift 4.x
Для изменения цвета фона выделения на любой цвет используйте расширение Swift.
Создайте расширение ячейки UITableView, как показано ниже
Затем вызовите removeCellSelectionColour () с экземпляром ячейки.
источник