Скажем, у меня есть UITableView с настраиваемым UITableViewCell, содержащим 4 метки, есть ли способ после загрузки ячеек в представление с базовым макетом отредактировать их на основе номера строки, в которой они находятся. В моем примере мне понадобится текст текстовой метки каждой второй строки должен иметь один цвет, а текст другой строки - другой цвет. Я уже почти уверен, что в моем ответе будет что-то вроде:
bool true = (int) indexpath.row %2 != 0
А затем я бы установил операторы if, которые изменяют цвет в зависимости от логического значения. Единственное, чего я не знаю, это какой метод мне нужно было бы поместить это в TableViewSource и как я смогу получить доступ к содержимому конкретной ячейки, а не к содержимому ячейки каждый.
Получить индексный путь конкретной строки:
let indexPath = NSIndexPath(forRow: rowNumber, inSection: 0)
Перезагрузите определенную ячейку табличного представления:
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
Получите определенную ячейку и внесите изменения:
let cell = tableView.cellForRow(at: indexPath)
Вы устанавливаете собственный цвет в ярлыке в другой ячейке, щелкнув или во время загрузки? если цвет меняется при нажатии на таблицу, тогда установите код в didselect метода делегата tableview
Это не для того, когда вы нажимаете на ячейку, она просто предназначена для того, чтобы быть там, когда представление загружается, поэтому нет хорошего места для его размещения, поскольку я не могу явно поместить его в настраиваемый макет, поскольку макет игнорирует количество строк и не имеет доступа к нему.
Затем вам нужно установить во время выполнения, затем вы создаете одну функцию, например func getCell (indexPath: Indexpath) {// помещаем код, получаем ячейку этого Indexpath} и вызываем из ячейкиfor: Indexpath
Я могу получить ячейку, мне нужно знать, как редактировать компоненты этой конкретной ячейки
cell = tableView.cellForRow (at: indexPath) // определяем тип класса, вот ваша ячейка, вы можете получить доступ к любой метке этой ячейки. после перезагрузки tableView.reloadRowsAtIndexPaths ([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
Да не в этом проблема. Проблема заключается в редактировании полученной ячейки.
cell = tableView.cellForRow (at: indexPath) // определяем тип класса, вот ваша ячейка, вы можете получить доступ к любой метке этой ячейки. после перезагрузки tableView.reloadRowsAtIndexPaths ([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
Это бесполезный ответ, так как я задал вопрос и пометил его как вопрос C#, но, похоже, вы ответили в Objective-c. В своем предыдущем комментарии вы сказали: «Вы можете получить доступ к любому ярлыку этой ячейки». Как я могу получить доступ к любой метке, поскольку для этого нет функций с точки зрения настраиваемой ячейки просмотра таблицы
В каком методе я бы это сделал, потому что выполнение этого в методе viewdidload будет означать, что ячейки еще даже не добавлены? И даже если я могу получить ячейку, что у меня нет проблем, как мне отредактировать компоненты, которые находятся в этой ячейке, а не только в каждой отдельной ячейке?