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 に答える