iOS7中UISearchBar上方显示白色背景

33

我的视图控制器将一个UISearchBar设置为UITableView的表头视图。

self.tableView.tableHeaderView = self.searchBar;
在iOS7中,向下拉超出UISearchBar会显示一个白色空间,它不服从使用self.tableView.backgroundColor设置的黑暗颜色。是否有方法可以去掉这个白色空间?
答案: 在iOS7中,如果下拉超过UISearchBar,会显示一个白色区域,该区域不会遵循使用self.tableView.backgroundColor设置的深色颜色。是否有方法可以消除这个白色区域呢?
4个回答

46
我成功地通过设置表视图背景视图来摆脱那种颜色。
UIView *backgroundView = [[UIView alloc] initWithFrame:self.tableView.bounds];
backgroundView.backgroundColor = [UIColor clearColor];
self.tableView.backgroundView = backgroundView;

16
这对我很有用:[self.tableView setBackgroundView:[UIView new]];的意思是将表格视图的背景设置为空视图。 - Gustaf Rosenblad
Swift 4: let backgroundView = UIView() backgroundView.backgroundColor = .clear self.tableView.backgroundView = backgroundView Swift 4:let backgroundView = UIView() backgroundView.backgroundColor = .clear self.tableView.backgroundView = backgroundView - Caleb Friden
当分配新的 UIView 时,将背景颜色设置为 .clear 不是必需的。 - Sal

9
作为开发者,在时代可能会遇到白色背景的问题: tableView.backgroundView = UIView()

完全解决了我的问题。如此简单的解决方案。谢谢。 - mondousage
使用 SWIFT 3 进行开发 - MLBDG

4

经过多次尝试,将一个虚拟父UIView添加到UISearchBar中,然后再将其设置为tableHeaderView,可以防止出现空白,并正确显示tableView的背景颜色。

UIView *parentView = [[UIView alloc] initWithFrame:searchRect];
[parentView addSubview:self.searchBar];
self.tableView.tableHeaderView = parentView;

我很想知道是否有更好的解决方案。


0
我建议在视图的属性检查器中启用“扩展边缘”选项。

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