我想将tableViewCell内的标签的背景颜色设置为不透明,但我需要Apple提供的uiTableViewCell的默认背景颜色。
那么我怎样才能得到这个背景或它的颜色是什么颜色?
此致
答案 0 :(得分:2)
要重置已回收(出列)UITableViewCell的颜色,这在iOS 5,6和7中对我有用:
cell.backgroundColor = nil;
正如其他人在这里建议的那样,我为新创建的单元格记录了该属性的值。我看到了null
。这让我想到了这个房产。似乎在所有3个iOS版本中都有效。
我模糊地回忆一下,iOS已经彻底改变了UITableView和UITableViewCell中颜色的默认设置方式。在某些版本中,父容器颜色被拾取。在某些版本中,默认颜色为灰白色,但随时间变化。在iOS 7中,无论父母如何,都应用White。注意:请勿引用本段;如果你关心,请查阅。关键是,告诉你设置特定颜色的答案会给你不好的建议。
答案 1 :(得分:1)
您可以记录单元格的背景颜色
NSLog(@"cell background color is %@", cell.backgroundColor);
或单元格的contentView
NSLog(@"cell contentView's background color is %@", cell.contentView.backgroundColor);
您也可以直接设置标签的颜色:
label.backgroundColor = cell.contentView.backgroundColor;
答案 2 :(得分:1)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIColor *color = [cell backgroundColor];
NSLog(@"%@",color);
结果是
2011-11-08 17:09:20.101 test1 [5439:207] UIDeviceRGBColorSpace 1 1 1 1
表示默认颜色为红色= 1,绿色= 1,蓝色= 1,alpha = 1。它是白色的。
注意,UITableViewCell还具有contentView
属性,其中包含真实的可见颜色。
答案 3 :(得分:1)
我找到了一个解决方案:Different cell bg color depending on iOS version (4.0 to 5.0)
总结一下,我只是实现方法
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
谢谢!