我有一个UITableView,我将我的单元格背景颜色设置为RGB 244,240,246。我通过在表格单元格中设置表格,表格单元格和内容视图的背景颜色来完成此操作。 / p>
但是,附件(在这种情况下是复选标记)改为黑色背景。
当我在桌面上启用编辑时,左侧的删除圈也有黑色背景。
我似乎无法改变这种背景颜色。
我尝试过使用以下代码:
cell.editingAccessoryView = [[UIView alloc] init];
cell.editingAccessoryView.backgroundColor = [UIColor colorWithRed:244/255 green:240/255 blue:246/255 alpha:1.0];
但它没有效果。
我试过在故事板中寻找一个设置,但似乎没有任何区别。
我注意到如果我将表格单元格和内容视图背景颜色更改为“默认”,则整个单元格背景变为黑色(即使表格背景颜色仍然是我的自定义颜色)。
我已经浏览了iOS7 Transition指南,但没有看到任何与UIAccessoryView相关的内容。我也搜索了stackoverflow,但我找不到任何与我遇到的问题相符的内容。
我该如何解决这个问题?
答案 0 :(得分:2)
在iOS 7中,单元格默认为白色背景;在早期版本的iOS中,单元格继承封闭表视图的背景颜色。如果要更改单元格的背景颜色,请在tableView:willDisplayCell:forRowAtIndexPath:表视图委托方法中执行此操作。
我希望这可以帮到你
答案 1 :(得分:1)
您需要设置UITableViewCell
的backgroundView属性,您不能简单地更改editingAccessoryView
,就像您可能已经看到的那样。而是做类似的事情:
UIView *aBackgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
aBackgroundView.backgroundColor = [UIColor yourColor];
yourCell.backgroundView = aBackgroundView;
或
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
使用:
cell.contentView.superview.backgroundColor = [UIColor redColor];
答案 2 :(得分:0)
对于表格视图单元格,有一个名为backgroundView
的属性。您只需要更改backgroundView的backgroundcolor。多数民众赞成。
cell.backgroundView.backgroundColor = [UIColor yourcolor];
答案 3 :(得分:0)
对于iOS 7,将其放在自定义表格单元格代码中
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
[super willTransitionToState:state];
if ((state & UITableViewCellStateShowingEditControlMask) == UITableViewCellStateShowingEditControlMask)
{
for (UIView *subview in self.subviews)
{
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellScrollView"])
{
subview.backgroundColor = [UIColor colorWithRed:0.69 green:0.769 blue:0.871 alpha:1];
}
}
}
}
答案 4 :(得分:0)
问题是由颜色对象引起的。正确的行是:
cell.editingAccessoryView.backgroundColor = [UIColor colorWithRed:244/255.0f green:240/255.0f blue:246/255.0f alpha:1.0];
我最好的猜测是没有.0f它会将数字视为整数并将所有值都截断为0(这会让我变黑)。