我有一个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,
答案 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;
}