2009-06-24 71 views
1

我有一个tableView,它松散地基于旧SQLiteBooks中的DetailViewController。它以编程方式创建。每个单元显示单个值,单击时显示一个允许用户编辑该值的通用编辑控制器。漂亮的标准可可触摸的东西...在TableViewCell中更改UILabel的属性

除了...我也有一个在所述tableView的标题分段控制取决于它的设置需要更改UILabel上的属性(textColor)在8之一表中的±tableViewCells。我没有这个tableView的IBOutlets,因为我完全用代码创建了它。那么,我需要在我的(void)segmentAction中做什么:(id)发件人方法(在segmentedControl更改状态时触发)以允许我访问&更改此值并将其显示给用户?在建表时(cellForRowAtIndexPath),每个UILabel被称为“value”,然后添加:[cell.contentView addSubview:value]

我已经尝试设置的viewController本身则是在的cellForRowAtIndexPath检查并做了文字颜色业务存在的属性...然后加入[self.tableView setNeedsDisplay]segmentAction:方法,但它似乎没有工作?!?

任何想法?

回答

0

在实现cellForRowAtIndexPath的类中,您还可以存储对构建相关单元格时所需的UILabel的引用。

这意味着您可以更改标签并将其标记为重新粉刷。

或者,您可以持有一个本地布尔值来显示单元格应该以不同的方式绘制 - 然后在cellForRowAtIndexPath中使用它:以背景绘制它。

您可能会发现这更容易与3.0为textLabel对象在一个UITableViewCell

+0

Doh!在我的控制器中有一个简单的ivar,它在创建时指向所述UILabel!很棒!谢谢。 – Meltemi 2009-06-24 18:00:15

1

如果您知道要修改的单元格的索引路径,则可以调用cellForRowAtIndexPath:以检索UITableViewCell。一旦你有了,你可以从它得到UILabel。如果您在创建UILabel标签时将其设置为某个有用值,则可以通过viewWithTag:从UITableViewCell中检索它。

+0

我有这个,或者至少我的这种做法的解释的问题是,我在我参与的cellForRowAtIndexPath太多事情把桌子摆在首位。虽然随着有条件的论点,我可能会得到这个工作... – Meltemi 2009-06-24 17:58:09