如何更改表格视图单元格文本标签颜色

时间:2013-12-30 21:07:55

标签: ios objective-c uitableview

我在这里搜索了很多,我发现有很多人告诉他们把代码放在if (cell == nil)里面,我做了,但它没有用。

我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    cell.textLabel.text = [listaMaterias objectAtIndex:indexPath.row];

    if (cell == nil) {

        cell.textLabel.textColor = [UIColor colorWithRed:17/255 green:112/255 blue:1/255 alpha:1];
    }

    return cell;
}

2 个答案:

答案 0 :(得分:3)

当你创建你的UIColor时,你正在使用整数除法。 17/255 = 0.你想使用浮点除法:[UIColor colorWithRed:17.0f / 255.0f绿色:112.0f / 255.0f蓝色:1.0f / 255.0f alpha:1.0f]。

顺便说一句,那个(cell == nil)检查是没有必要的,因为在nil上调用方法是合法的,它们不会做任何事情(并且如果它们返回一个对象将返回nil)。所以“(nil).textLabel”的计算结果为nil,而“(nil).textColor =”(变为“[nil setTextColor:])只是立即返回。

答案 1 :(得分:1)

dequeueReusableCellWithIdentifier:forIndexPath:总是返回一个有效的单元格,因此单元格永远不会nil,并且永远不会执行该代码。您之前使用的建议是在使用initWithStyle:reuseIdentifier:时,可以返回nil,因此cell == nil块中需要创建单元格。

您可以直接调用它,只要您还将颜色创建代码更改为@Sean Cier指出的内容。