4

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

但是,附件(在本例中为复选标记)具有黑色背景。

UIAccessoryView 有黑色背景

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

启用编辑具有更多黑色背景

我似乎无法更改此背景颜色。

我已经尝试使用以下代码这样做:

cell.editingAccessoryView = [[UIView alloc] init];
cell.editingAccessoryView.backgroundColor = [UIColor colorWithRed:244/255 green:240/255 blue:246/255 alpha:1.0];

但它没有效果。

我尝试在情节提要中寻找设置,但似乎没有任何区别。

我确实注意到,如果我将表格单元格和内容视图背景颜色更改为“默认”,整个单元格背景将变为黑色(即使表格背景颜色仍然是我的自定义颜色)。

我浏览了 iOS7 过渡指南,但没有看到与 UIAccessoryView 相关的任何内容。我也通过 stackoverflow 进行了搜索,但我找不到任何与我遇到的问题相匹配的内容。

我怎样才能解决这个问题?

4

5 回答 5

2

在 iOS 7 中,单元格默认为白色背景;在早期版本的 iOS 中,单元格继承了封闭表格视图的背景颜色。如果要更改单元格的背景颜色,请在 tableView 委托的 tableView:willDisplayCell:forRowAtIndexPath: 方法中进行。

我希望这对你有帮助

于 2014-04-01T12:01:27.693 回答
1

您需要设置 的 backgroundView 属性,不能像您可能已经看到UITableViewCell的那样简单地更改。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];
于 2013-10-16T15:13:45.777 回答
0

对于表格视图单元格,有一个名为backgroundView. 您只需要更改背景视图的背景颜色。就是这样。

 cell.backgroundView.backgroundColor = [UIColor yourcolor];
于 2014-01-15T07:41:18.260 回答
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];
            }
        }
    }

}

于 2014-05-22T13:06:49.467 回答
0

问题是由颜色对象引起的。正确的行是:

cell.editingAccessoryView.backgroundColor = [UIColor colorWithRed:244/255.0f green:240/255.0f blue:246/255.0f alpha:1.0];

我最好的猜测是,如果没有 .0f,它会将数字视为整数并将所有值截断为 0(这会给我黑色)。

于 2014-06-04T23:21:04.840 回答