在我的应用程序中,我有这种错误:
当我向下滚动时,表格的内容会显示在搜索栏上方。可能是什么原因?
override func viewDidLoad() {
super.viewDidLoad()
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.barTintColor = UIColor(red: 52.0/255.0, green: 73.0/255.0, blue: 94.0/255.0, alpha: 1.0)
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
self.tableView.reloadData()
}
答案 0 :(得分:0)
您应该使状态栏不是半透明的。
状态栏的颜色为property of UIApplication。您需要将其设置为有效的UIStatusBarStyle。
答案 1 :(得分:0)
iOS Human Interface Guidelines列出3种阻止内容通过状态栏显示的方法。
使用导航控制器显示内容。导航控制器会自动显示状态栏背景和它 确保其内容视图不会显示在状态栏后面。 (至 了解有关导航控制器的更多信息,请参阅Navigation Controllers。)
创建一个非重复的自定义图像(如渐变),并将其显示在状态栏后面。确保图像保持不变 在状态栏后面,您可以使用视图控制器来保持状态 滚动视图上方的图像,或者您可以使用滚动视图来保持 它固定在顶部。
定位内容以避开状态栏区域(即应用程序的statusBarFrame属性定义的区域)。如果你这样做,你 应该使用窗口的背景颜色来提供纯色 状态栏后面。
答案 2 :(得分:0)
新的UISearchController
旨在与UITableView
和UINavigationBar
配合使用。它的功能取决于您的导航栏。当搜索栏在其文本字段中包含内容时,它将被锁定在导航栏下方的页面顶部。好吧,你没有任何导航栏,它会锁定到顶视图指南,它总是考虑状态栏(如果存在)我想你可以解决问题的唯一方法是没有实际的导航栏是添加状态栏下的视图,使其与搜索栏一样不透明。它有点笨拙,但在我的书中没问题。