iOS7上附件视图中的背景颜色错误

时间:2013-10-16 14:30:03

标签: ios uitableview uiaccessoryview

我有一个UITableView,我将我的单元格背景颜色设置为RGB 244,240,246。我通过在表格单元格中设置表格,表格单元格和内容视图的背景颜色来完成此操作。 / p>

但是,附件(在这种情况下是复选标记)改为黑色背景。

UIAccessoryView has black background

当我在桌面上启用编辑时,左侧的删除圈也有黑色背景。

Editing enabled has more black background

我似乎无法改变这种背景颜色。

我尝试过使用以下代码:

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,但我找不到任何与我遇到的问题相符的内容。

我该如何解决这个问题?

5 个答案:

答案 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(这会让我变黑)。