Измените UITableViewCell вне методов протокола - PullRequest
0 голосов
/ 21 июня 2009

UITableViewCell обычно отрисовывается с помощью методов протокола UITableViewDelegate или UITableViewDataSource, например

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

Но как бы я изменил ячейку вне этих методов? Если бы я хотел, например, переключить цвет textLabel UITableViewCell на красный с помощью кнопки на том же экране, как бы я обратился к этой ячейке и изменил ее?

Ответы [ 3 ]

3 голосов
/ 21 июня 2009

Если я правильно понимаю ваш вопрос, предполагая, что вы знаете индекс строки ячейки, которую вы хотите изменить, вы можете просто заставить свою кнопку использовать метод:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

... чтобы получить UITableViewCell, который вы хотите отредактировать, а затем использовать этот указатель для изменения свойства textColor ячеек и т. Д.

UITableViewCell *firstCell = [someTableView cellForRowAtIndexPath:0];
firstCell.textColor = [UIColor redColor];
1 голос
/ 14 июля 2009

Самый простой способ - это, вероятно, иметь переменную, в которой хранится цвет, которым вы хотите, чтобы была строка.

Когда вы нажимаете кнопку, измените переменную на новый цвет, затем вызовите [tableview reloadData]

0 голосов
/ 14 июля 2009

Можете ли вы получить доступ к кнопке из tableView: cellForRowAtIndexPath: метод? Если это так, вы можете использовать NSNotificationCenter, чтобы публиковать уведомления при нажатии кнопки и прослушивать эти уведомления из ячейки табличного представления (которую вам придется подклассировать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...