在Protocol方法之外更改UITableViewCell

时间:2009-06-21 01:14:51

标签: iphone uitableview

UITableViewCell通常使用UITableViewDelegate或UITableViewDataSource协议方法绘制,例如

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

但是我如何更改这些方法之外的细胞?例如,如果我想使用同一屏幕上的按钮将UITableViewCell的textLabel颜色变为红色,我将如何引用该单元并进行更改?

3 个答案:

答案 0 :(得分:3)

如果我正确理解您的问题,假设您知道要更改的单元格的行索引,则只需让按钮使用该方法:

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

...获取要编辑的UITableViewCell,然后使用该指针更改单元格textColor属性等。

UITableViewCell *firstCell = [someTableView cellForRowAtIndexPath:0];
firstCell.textColor = [UIColor redColor];

答案 1 :(得分:1)

最简单的方法可能是有一个变量来存储你想要行的颜色。

当您按下按钮时,将变量更改为新颜色,然后调用[tableview reloadData]

答案 2 :(得分:0)

您可以从tableView:cellForRowAtIndexPath:方法中访问该按钮吗?如果是这样,您可以使用NSNotificationCenter在按下按钮时发布通知,并从表视图单元(您必须子类)中侦听这些通知。

相关问题