在UItableViewCell中更改UILabel文本颜色

时间:2012-06-26 18:35:47

标签: objective-c cocoa-touch uitableview uilabel

我有一个大的自定义UITableView,每行UILabels,我想显示黑色或绿色的某些文字。

我使用NSString's中的NSArray来提供细胞。假设我想仅以黑色显示索引NSString中的30

我正在尝试这样的东西,但它不起作用:

NSIndexPath *indexPathWithBlackText = [NSIndexPath indexPathForRow:30 inSection:[indexPath section]];

    if (indexPath.row == indexPathWithBlackText.row) {  
        //Label with text in black 
        topLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
        topLabel.highlightedTextColor = [UIColor colorWithRed:1.0 green:1.0 blue:0.9 alpha:1.0];
    } else {
        //Label with text in green 
        topLabel.textColor = [UIColor colorWithRed:0.122 green:0.467 blue:0.255 alpha:1.00];
    }

任何关于正确方向的提示都将非常感激。谢谢!

3 个答案:

答案 0 :(得分:1)

在这个UITableViewDataSource委托方法中:

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

写下这个:

if ([self isBlackRow:indexPath.row]) {
    // Your label reference, change color to black here.
} else {
    // Your label reference, change color to green here. 
}

制定方法以确定该行是否为黑色

- (BOOL)isBlackRow:(NSInteger)row {
    NSArray* blackRows = [NSArray arrayWithObjects:[NSNumber numberWithInt:30], [NSNumber numberWithInt:11], nil];

    for (NSNumber* number in blackRows) {
        if (number.intValue == row) {
            return YES;
        }
    }

    return NO;
}

答案 1 :(得分:1)

 if (indexPath.row > 29) {  
    //Label with text in black 
    topLabel.textColor = [UIColor colorWithRed:0.25 green:0.0 blue:0.0 alpha:1.0];
    topLabel.highlightedTextColor = [UIColor colorWithRed:1.0 green:1.0 blue:0.9 alpha:1.0];
} else {
    //Label with text in green 
    topLabel.textColor = [UIColor colorWithRed:0.122 green:0.467 blue:0.255 alpha:1.00];
}

答案 2 :(得分:0)

如何将标签添加到表格视图中?

您可能没有引用正确的对象。