设置UITableViewCell删除控件的背景颜色。

5
在 iPhone/iPad 应用中,我使用 UITableView 来显示可以编辑的项目列表。我已经成功地交替更改了表视图中行的背景颜色。但是,当我打开“编辑模式”(即显示删除控件)时,每个单元格似乎都向右移动,并且删除控件从左侧滑入。
我的问题是,删除控件具有白色背景颜色。我希望删除控件的背景颜色与我的 UITableViewCell 的背景颜色匹配。
我该如何实现这一点?

我知道自己提出问题后时间还不够长,你还没有办法回答自己的问题。但是,比起编辑@PengOne的答案来包含真正的答案,更好的方法是等待八个小时(或者获得100声望值 :)),这样你就可以回答并接受答案了。 - sarnold
2个回答

4
一个解决方法是在getCellContentView函数中,您创建框架/标签并将它们添加为子视图时,添加一个额外的标签,该标签要宽得多,并以负X值开头。然后,可以对其进行着色。由于它是在删除控件“下面”绘制的,因此颜色会透过来。
诀窍在于理解删除控件没有在任何地方绘制“白色”。删除控件本身的背景颜色已经是透明的,因此您必须在其下方放置东西。负“x”值就是诀窍。

这对我有用。创建一个比单元格宽得多的标签,并将正确的背景颜色添加到该标签中,但不要添加文本。该标签将透过删除控件显示出来。 - user334899
完美运行。当“删除”文本出现在左侧时也是如此! - Darko

1
尝试将包含删除按钮的accessoryView的背景设置为UIColor clearColor。我不确定确切的语法,但类似于:
[tableView.editingAccessoryView setBackgroundColor:[UIColor clearColor]];

如果这对你不起作用,你可以尝试将整个表视图的背景设置为透明。这不应该影响每个单元格的自定义颜色。

谢谢,我尝试将accessoryView的backgroundColor设置为clearColor,但这没有任何效果。然而,将tableView的backgroundColor设置为clearColor确实有影响(但不是期望的效果)。将tableView的backgroundColor设置为clearColor会使整个tableView“黑色”(完全透明),除了元素绘制的地方。 - Matt
@Matt,你设置了editingAccessoryView背景还是只是accessoryView背景?这是两个不同的视图。 - PengOne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接