在自定义 UITableViewCell 中更改 UILabel 的颜色
Posted
技术标签:
【中文标题】在自定义 UITableViewCell 中更改 UILabel 的颜色【英文标题】:change color of UILabel in custom UITableViewCell 【发布时间】:2011-02-12 16:46:41 【问题描述】:我在更改 UILabel
textColor
属性时遇到了一个小问题,它不会在 tableView didSelectRowAtIndexPath
方法中改变颜色我使用的是子类化的 customCell 和
我正在使用最新的 XCode4 GM 版本,想知道是否有其他人遇到过类似的情况 或者它可能是 xcode 版本中的错误
更新:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
NSIndexPath *indexPath = [tableView indexPathForCell:(HSCustomCellTF *)[[textField superview] superview]];
HSCustomCellTF *cell = (HSCustomCellTF *)[tableView cellForRowAtIndexPath:indexPath];
cell.keyLBL.textColor = [UIColor redColor];
cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"middleRowSelectedBG.png"]] autorelease];
tableView.userInteractionEnabled = NO;
return YES;
我想补充一点,我已经尝试过其他方法来达到结果,但没有运气,
我现在要试试willDisplayCell
方法,看看效果如何,谢谢你的帮助。
backgroundView 也正确更改,所以我正在访问单元格
【问题讨论】:
您能提供您尝试使用的代码吗? 【参考方案1】:试试:
tableView:willDisplayCell:forRowAtIndexPath:
来自 UITableViewDelegate 协议
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate
【讨论】:
这不起作用,我想因为我没有编辑表格,我有一个 uilabel 和 uitextfield 并且 TF 是隐藏的,我使用 shouldChangeCharactersInRange 方法来更新标签,我使用它是因为我不希望用户输入小数,值是价格 好吧,经过一番调查,你是正确的,这是这样做的方法,但它仍然没有更新标签颜色,任何想法【参考方案2】:好的,我找到了答案,似乎当您使用自定义单元格时,并且想要编辑标签颜色,然后在 tableViewCell 的子类中,不要在 layoutSubviews 方法中设置属性,一次我从该方法中删除了 textColor 属性@gkchristopher 答案是正确的,谢谢大家的帮助,希望这对其他人有帮助。
【讨论】:
【参考方案3】:使用这个:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];
cell.label.textColor = [UIColor whiteColor];
return indexPath;
- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath
CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];
cell.label.textColor = [UIColor darkGrayColor];
return indexPath;
【讨论】:
以上是关于在自定义 UITableViewCell 中更改 UILabel 的颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何在自定义 UITableViewCell 中更改 UIButton 标题的权重属性?
在自定义 TableViewCell 中动态更改 UILabel 框架
UIButton 在自定义 UITableviewCell 中没有响应