iOS改变颜色的一些项目

时间:2014-09-05 07:49:51

标签: ios colors

我有一个tableviewcontroller,其中很少有带标签,文本字段等的单元格。我想改变标签和文本字段的颜色。

我试着用它:

[[UILabel appearance] setTextColor:[[UtilisateurManager getCurrUser] getColor]];

它有用,但问题是它改变了我的导航抽屉标签的颜色,我不想要那个,我只想改变项目的颜色我的tableviewcontroller。

所以我试过了:

    for(UIView *v in [self.tableView subviews]) {
        if ([v isKindOfClass:[UILabel class]]) {
            [(UILabel *)v setTextColor:[[UtilisateurManager getCurrUser] getColor]];
        }
        else if ([v isKindOfClass:[UITextView class]]) {
            [(UITextView *)v setTextColor:[[UtilisateurManager getCurrUser] getColor]];
        } etc...
}

但它不起作用......我不明白如何更新我的tableviewcontroller项目的颜色,而不会触摸我的导航抽屉。

THX,

2 个答案:

答案 0 :(得分:1)

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

UITableViewCell *cell = ...;

for (UIView *view in [cell.contentView subviews])
{
    NSLog(@"%@", view);
}

如果我理解你的话,你应该有你的子视图。

答案 1 :(得分:0)

错误是以下将使所有标签颜色发生变化(就像你在父级别进行更改所以所有创建的子项也将更改)...

[[UILabel appearance] setTextColor:[[UtilisateurManager getCurrUser] getColor]];

所以为了实现你想要的你可以简单地做到如下,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

  cell.textLabel.textColor = [UIColor blackColor];
  //Or
  label.textColor = [UIColor redColor];  //Your label and textfield color you could set as per ur need.

  return cell;
}