Как изменить цвет строки в UITableView

Скажем, у меня есть UITableView с настраиваемым UITableViewCell, содержащим 4 метки, есть ли способ после загрузки ячеек в представление с базовым макетом отредактировать их на основе номера строки, в которой они находятся. В моем примере мне понадобится текст текстовой метки каждой второй строки должен иметь один цвет, а текст другой строки - другой цвет. Я уже почти уверен, что в моем ответе будет что-то вроде:

bool true = (int) indexpath.row %2 != 0

А затем я бы установил операторы if, которые изменяют цвет в зависимости от логического значения. Единственное, чего я не знаю, это какой метод мне нужно было бы поместить это в TableViewSource и как я смогу получить доступ к содержимому конкретной ячейки, а не к содержимому ячейки каждый.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
57
1

Ответы 1

Получить индексный путь конкретной строки:

let indexPath = NSIndexPath(forRow: rowNumber, inSection: 0)

Перезагрузите определенную ячейку табличного представления:

tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)

Получите определенную ячейку и внесите изменения:

let cell = tableView.cellForRow(at: indexPath)

В каком методе я бы это сделал, потому что выполнение этого в методе viewdidload будет означать, что ячейки еще даже не добавлены? И даже если я могу получить ячейку, что у меня нет проблем, как мне отредактировать компоненты, которые находятся в этой ячейке, а не только в каждой отдельной ячейке?

R. Duggan 09.08.2018 02:48

Вы устанавливаете собственный цвет в ярлыке в другой ячейке, щелкнув или во время загрузки? если цвет меняется при нажатии на таблицу, тогда установите код в didselect метода делегата tableview

Anil Kumar 09.08.2018 02:56

Это не для того, когда вы нажимаете на ячейку, она просто предназначена для того, чтобы быть там, когда представление загружается, поэтому нет хорошего места для его размещения, поскольку я не могу явно поместить его в настраиваемый макет, поскольку макет игнорирует количество строк и не имеет доступа к нему.

R. Duggan 09.08.2018 02:58

Затем вам нужно установить во время выполнения, затем вы создаете одну функцию, например func getCell (indexPath: Indexpath) {// помещаем код, получаем ячейку этого Indexpath} и ​​вызываем из ячейкиfor: Indexpath

Anil Kumar 09.08.2018 03:02

Я могу получить ячейку, мне нужно знать, как редактировать компоненты этой конкретной ячейки

R. Duggan 09.08.2018 03:03

cell = tableView.cellForRow (at: indexPath) // определяем тип класса, вот ваша ячейка, вы можете получить доступ к любой метке этой ячейки. после перезагрузки tableView.reloadRowsAtIndexPaths ([indexPath], withRowAnimation: UITableViewRowAnimation.Top)

Anil Kumar 09.08.2018 03:04

Да не в этом проблема. Проблема заключается в редактировании полученной ячейки.

R. Duggan 09.08.2018 03:04

cell = tableView.cellForRow (at: indexPath) // определяем тип класса, вот ваша ячейка, вы можете получить доступ к любой метке этой ячейки. после перезагрузки tableView.reloadRowsAtIndexPaths ([indexPath], withRowAnimation: UITableViewRowAnimation.Top)

Anil Kumar 09.08.2018 03:07

Это бесполезный ответ, так как я задал вопрос и пометил его как вопрос C#, но, похоже, вы ответили в Objective-c. В своем предыдущем комментарии вы сказали: «Вы можете получить доступ к любому ярлыку этой ячейки». Как я могу получить доступ к любой метке, поскольку для этого нет функций с точки зрения настраиваемой ячейки просмотра таблицы

R. Duggan 09.08.2018 15:00

Другие вопросы по теме