Мне интересно, как изменить синий цвет выделения / выделения UITableViewCell
, есть идеи?
ios
uitableview
Томас Джус
источник
источник
selectedBackgroundView
что тогда он просто никогда не появится. Только после установки "Выбор" по умолчанию,selectedBackgroundView
появится. Протестировано на iOS 6 и 7.cell.selectedBackgroundView = [UIView new];
и вы устанавливаете любой цвет, который хотите:cell.selectedBackgroundView.backgroundColor = [UIColor colorWithHex:@"ecf2f5" andAlpha:1];
Zonble уже дал отличный ответ. Я подумал, что может быть полезно включить короткий фрагмент кода для добавления
UIView
в ячейку табличного представления, которая будет отображаться в качестве выбранного фонового представления.UITableViewCell
selectedBackgroundView
,UIView
которую я создал с выбранным мной цветом фона.Это хорошо сработало для меня. Спасибо Zonble за подсказку.
источник
UITableViewCell
имеет три стиля выбора по умолчанию: -Реализация выглядит следующим образом: -
источник
В Swift используйте это в
cellForRowAtIndexPath
Если вы хотите, чтобы цвет выделения был одинаковым во всех
UITableViewCell
, используйте это вAppDelegate
.источник
Если вы хотите изменить его в масштабе всего приложения, вы можете добавить логику в свой делегат приложения.
источник
для полноты: если вы создали свой собственный подкласс,
UITableViewCell
вы можете реализовать- (void)setSelected:(BOOL)selected animated:(BOOL)animated
метод и установить цвет фона некоторого представления, которое вы добавили в представление содержимого. (если это так) или самого contentView (если он не покрывается одним из ваших собственных представлений.(не использовал? чтобы уместить небольшую ширину DIV исходного кода :)
у этого подхода есть два преимущества перед использованием selectedBackgroundView: он использует меньше памяти и немного меньше ЦП, чего вы даже не заметили бы, если бы не отображали сотни ячеек.
источник
selectedBackgroundView
самом начале метода addself. selectedBackgroundView = [UIView new];
selectedBackgroundView
свойства.Мне нужно установить стиль выбора, чтобы
UITableViewCellSelectionStyleDefault
пользовательский цвет фона работал. Если какой-либо другой стиль, пользовательский цвет фона будет проигнорирован. Проверено на iOS 8.Полный код ячейки выглядит следующим образом:
источник
Основываясь на ответе @ user , вы можете просто добавить это расширение в любом месте кода вашего приложения и выбрать цвет прямо в редакторе раскадровки для каждой ячейки вашего приложения:
источник
В раскадровке установите для класса UITableViewCell значение UIDesignableTableViewCell, в инспекторе атрибутов вы можете изменить выбранный цвет ячейки на любой цвет.
Вы можете использовать это для всех своих ячеек. Так будет выглядеть ваш инспектор атрибутов.
источник
UIColor.clear
, нетUIColor.clearColor()
. Не уверен, что это изменение и в Swift, но оно работает и без него@IBDesignable
.Swift 3.0 / 4.0
Если вы создали свою собственную ячейку, вы можете изменить цвет выделения
awakeFromNib()
для всех ячеек:источник
1- Добавьте представление в представление содержимого вашей ячейки.
2- Щелкните правой кнопкой мыши свою ячейку.
3- Сделайте добавленное представление как «selectedBackgroundView»
источник