我有一个UITableView
在重新加载时会显示一些非常奇怪的行为。由于某种原因,表视图的某些边框只是丢失(即使我从未修改它们),但显示的单元格标签是正确的。
如果我只是重新加载一行,则此行会丢失其边框。如果我重新加载整个表格,整个表格就会失去边界。
我使用白色背景,单元格也有白色背景,UITableView
使用组样式。
我之前没有见过这样的行为 - 这是一个错误吗?
以下是我设置表格的方法:
settingsController.view.backgroundColor = [UIColor whiteColor];
_settingsTable = [[UITableView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.frame style:UITableViewStyleGrouped];
_settingsTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_settingsTable.delegate = self;
_settingsTable.dataSource = self;
_settingsTable.backgroundView = nil;
[settingsController.view addSubview:_settingsTable];
通过这个简单的代码将单元格变为白色:
cell.backgroundView = nil;
cell.backgroundColor = [UIColor whiteColor];
从上面的屏幕截图中可以看出,重新加载单元格后,体积单元格丢失了边框。有谁知道发生了什么事?
编辑:以下是我解决这个问题的方法:
UITableView
似乎存在错误。您可能知道,UITableView
并不关心backgroundColor
属性,因为它的背景是在一个单独的视图中加载的,默认情况下是一个纹理图像。通过将其设置为null
,表视图显示显示错误。
我通过创建一个单独的白色视图来修复此问题 - 现在它可以正常工作。
UIView*whiteBg = [[UIView alloc] initWithFrame:_settingsTable.frame];
whiteBg.backgroundColor = [UIColor whiteColor];
_settingsTable.backgroundView = whiteBg;
[whiteBg release];
答案 0 :(得分:-1)
不要将表格的背景视图设置为零。将backgroundColor设置为[UIColor clearColor]
可以实现类似的效果同样适用于UITableViewCell。