1

我有子类 UITableViewCell 并且我有以下代码:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    if (selected)
        self.textField.textColor = [UIColor whiteColor];
    else
        self.textField.textColor = [UIColor blackColor];

    [super setSelected:selected animated:animated];
}

基本上,我的单​​元格中只有一个 UITextField,但标签的颜色不会自动变为白色,所以我需要某种方法来在突出显示时更改它。有任何想法吗?

4

3 回答 3

1

你应该使用cell.textLabel.highlightedTextColor并且没有改变它setSelected:

于 2012-12-12T14:59:49.830 回答
0

在你的 cellForRowAtIndexPath

cell.selectionStyle = UITableViewCellSelectionStyleNone;

在你的子视图中有这样的东西

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

if (selected)
        self.textLabel.textColor=[UIColor blackColor];
    else
        self.textLabel.textColor=[UIColor greenColor];


}
于 2012-12-12T14:55:39.393 回答
0

我相信这是在UITextField. 但我想知道的是:是否self.textField正确连接到正确的实例?(通过 Interface Builder/StoryBoard 或代码)

尝试在 setSelected 方法的顶部添加此代码,并在运行应用程序时查看控制台:

NSLog(@"self.textField = %@", self.textField);
于 2012-12-12T14:44:46.987 回答