Я загружаю пользовательский файл nib для настройки ячеек UITableView. Пользовательский nib имеет UILabel, на который ссылается основной вид по тегу. Я хотел бы знать, можно ли изменить цвет тени UILabel, когда ячейка выбрана для другого цвета, поэтому на скриншоте это не похоже.UILabel тень от пользовательской ячейки выбранного цвета
ответ
Вы можете изменить цвет тени лейбла в -tableView:willSelectRowAtIndexPath:
в делегатом. Например:
-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor greenColor];
return indexPath;
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor redColor];
}
Я предпочитаю изменять цвет тени внутри кода TableCell, чтобы не загрязнять делегата. Вы можете переопределить этот метод, чтобы справиться с этим:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animate
{
UIColor * newShadow = highlighted ? [UIColor clearColor] : [UIColor whiteColor];
nameLabel.shadowColor = newShadow;
[super setHighlighted:highlighted animated:animate];
}
Простой ответ, по крайней мере, на примере, приведенном выше, чтобы не отображать тень в первую очередь. Так как вы все равно не видите белый-на-белом, установите для shadowColor значение -clearColor.
Если вам действительно нужна тень, переопределение метода -setHighlighted является лучшим решением. Он хранит код с ячейкой, который, я думаю, лучше, чем пытаться обработать его из представления таблицы.
У меня была такая же проблема, и ни одно из вышеперечисленных решений не сработало для меня - я не хотел подкласса UITableViewCell
, а также имел некоторые сложные выбранные/выделенные изменения состояния, сделанные программно, что не очень хорошо отразилось на решениях выше ,
MySolution:
То, что я сделал в конце концов, использовать второй UILabel
под первичным UILabel
действовать как тень. Для этой «тени» UILabel
вы можете установить «Выделенный цвет» на «Очистить цвет».
Очевидно, вам нужно обновлять метку тени каждый раз, когда вы обновляете основную метку. Во многих случаях не стоит платить много.
Надеюсь, что это поможет!
- 1. Изменение выбранного цвета контура ячейки
- 2. тень UILabel
- 3. изменение цвета фона пользовательской ячейки
- 4. Невозможно назначить UILabel пользовательской ячейки поискаResultsTableView
- 5. Как изменить текст UILabel пользовательской ячейки?
- 6. Внутренняя тень в UILabel
- 7. ИОС тень для UILabel
- 8. Невозможно получить тень текста UILabel любого цвета, но серый
- 9. Изменение цвета фона ячейки из пользовательской формулы
- 10. Как сделать тень в UILabel
- 11. uilabel из пользовательской ячейки tableview не отображается в tableviewcontroller
- 12. Проблема с динамической высотой для пользовательской ячейки таблицы. UIlabel
- 13. Изменение цвета фона UILabel
- 14. Код цвета с цветового кода от выбранного цвета
- 15. обновить ячейки в пользовательской таблицеView
- 16. IOS UILabel shadow генерирует странную верхнюю тень
- 17. Установить ярлык для пользовательской ячейки
- 18. UILabel текста Изменение цвета
- 19. Изменение цвета текста UILabel
- 20. UILabel - Специальные символы цвета
- 21. UILabel определение цвета фона?
- 22. Изменение цвета фона ячейки ячейки
- 23. Выбранный цвет выбранного цвета
- 24. Настройка выбранного цвета JColorChooser
- 25. Данные акселерометра Swift не обновляют тень UILabel
- 26. Как сделать перевернутую тень на UILabel?
- 27. нужна более темная тень на UILabel
- 28. Коротко меняйте цвета в UILabel
- 29. Отображение пользовательской ячейки в UITable
- 30. iOS: установите альфа выбранного цвета выделения для UITableViewCell
Этот ответ не работает для выделенного состояния ячейки (т. Е. Если пользователь нажимает на ячейку, но не отпускает). Ответ Джейсона, к сожалению, является лучшим, что я видел, чтобы справиться с этим делом. К сожалению, это связано с подклассом. Вам также может потребоваться переопределить setSelected: – Prometheus