我有一个表格视图,可以在视图模式和编辑模式之间来回切换。我有一个单元格,我希望它在视图模式下是透明的,并且在编辑模式下看起来像一个“正常”单元格(即白色背景,圆角矩形轮廓)。基本上,当您进入和退出编辑模式时,您在联系人应用程序中看到名称单元格所做的事情是一样的。
我使用了如何创建具有透明背景的 UITableViewCell中的解决方案来获得透明背景,但我不知道如何恢复原始背景。
目前,我在 viewDidLoad 中创建了两个背景视图:
nameCellDefaultBackview = [[UIView alloc] initWithFrame:CGRectZero];
nameCellDefaultBackview.backgroundColor = [UIColor clearColor];
nameCellEditBackview = [[UIView alloc] initWithFrame:CGRectZero];
nameCellEditBackview.backgroundColor = [UIColor whiteColor];
然后我给我的单元格默认的背景视图:
nameCell.backgroundView = nameCellDefaultBackview;
在 setEditing:animated: 我根据编辑模式设置单元格的背景:
if (editing) {
nameCell.backgroundView = nameCellEditBackview;
} else {
nameCell.backgroundView = nameCellDefaultBackview;
}
问题是,在编辑模式下,我得到一个白色矩形而不是看起来像一个单元格的东西——这正是我所要求的,但不是我想要的:)。我尝试了其他一些事情,比如将 backgroundView 设置为 nil(这似乎 = 没有变化),并将“初始”背景视图保存在 viewDidLoad 中(这似乎不起作用,并在调试器中查看变量当我尝试将其分配给 setEditing 中的单元格时为 0x0)。
所以我想要的是在正常模式下看起来像这样:
在编辑模式下就像这样:
但我目前在编辑模式下得到的是:
那么我如何获得白色背景/边框/圆角呢?