状态栏与 UITableView 混合
Status bar mixes in with UITableView
我有 UITableviewController,它包含顶部的搜索栏和下面的 table 行。我已将导航栏设置为隐藏,并将视图放置在距离顶部 20 像素的位置以说明状态栏。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = YES;
UIApplication *app = [UIApplication sharedApplication];
if(!app.statusBarHidden) {
[self.view setFrame:CGRectMake(0.0,app.statusBarFrame.size.height, self.view.bounds.size.width, self.view.bounds.size.height - app.statusBarFrame.size.height)];
}}
这行得通。首次加载视图时,状态栏和视图显示正常。
但是,如果我点击 table 行之一,则会转换到新的推送视图。从新视图返回到包含 table 视图的视图后,状态栏与 tableviewcontroller 视图混合在一起。
调用了viewdidappear但是没有效果。有更好的方法吗?在我的其他视图之一中,我在故事板中手动添加了 20 px。但是,对于这个 tableviewcontroller,我想不出一个办法。欢迎提出任何建议。
这对我有用。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.navigationController.navigationBar.hidden = YES;
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7){
self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0);
}
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
}
用一个 UIViewController 代替 tableViewController,在里面用一个 searchBar 在上面,在下面用一个 tableView 这可能会解决你的问题
我有 UITableviewController,它包含顶部的搜索栏和下面的 table 行。我已将导航栏设置为隐藏,并将视图放置在距离顶部 20 像素的位置以说明状态栏。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = YES;
UIApplication *app = [UIApplication sharedApplication];
if(!app.statusBarHidden) {
[self.view setFrame:CGRectMake(0.0,app.statusBarFrame.size.height, self.view.bounds.size.width, self.view.bounds.size.height - app.statusBarFrame.size.height)];
}}
这行得通。首次加载视图时,状态栏和视图显示正常。
但是,如果我点击 table 行之一,则会转换到新的推送视图。从新视图返回到包含 table 视图的视图后,状态栏与 tableviewcontroller 视图混合在一起。
调用了viewdidappear但是没有效果。有更好的方法吗?在我的其他视图之一中,我在故事板中手动添加了 20 px。但是,对于这个 tableviewcontroller,我想不出一个办法。欢迎提出任何建议。
这对我有用。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.navigationController.navigationBar.hidden = YES;
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7){
self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0);
}
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
}
用一个 UIViewController 代替 tableViewController,在里面用一个 searchBar 在上面,在下面用一个 tableView 这可能会解决你的问题