我有一个带有嵌入式UISearchDisplayController的UITableViewController。在iOS 7中,搜索框位于状态栏下方。在界面构建器中是否有一种方法可以偏移tableview,以便状态栏不会覆盖搜索栏(并且仍然使用UITableViewController和UISearchDisplayController设置)?
答案 0 :(得分:14)
self.edgesForExtendedLayout=UIRectEdgeNone;
应解决此问题。
答案 1 :(得分:7)
您必须将其嵌入UINavigationController
,然后在navVC
中,只需取消选中Shows Navigation Bar
即可
答案 2 :(得分:4)
感觉有点hacky但这个对我有用:
[self.tableView setContentInset:UIEdgeInsetsMake(self.navigationController.navigationBar.frame.size.height + [[UIApplication sharedApplication] statusBarFrame].size.height, 0, 0, 0)];
如果你正在为这两个方向工作:
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
[self.tableView setContentInset:UIEdgeInsetsMake(self.navigationController.navigationBar.frame.size.height + [[UIApplication sharedApplication] statusBarFrame].size.height, 0, 0, 0)];
}
答案 3 :(得分:2)
将以下代码放在viewcontroller的viewdidload中。
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = NO;
self.automaticallyAdjustsScrollViewInsets = NO;
}
答案 4 :(得分:2)
self.edgesForExtendedLayout = UIRectEdgeNone;
...
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
if (navigation.hiden) {
[self.tbview setContentOffset:CGPointMake(0, -20)];
[self.tbview setContentInset:UIEdgeInsetsMake(20, 0, 0, 0)];
}
else {
[self.tbview setContentOffset:CGPointMake(0, -20)];
[self.tbview setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)];
}
}
答案 5 :(得分:2)
我必须调整tableview的contentOffset
和contentInset
。我的tableviewcontroller由模态segue触发,已嵌入故事板上游的导航控制器中。通过状态栏的高度调整内容插入,并通过搜索栏的高度偏移内容,显示从第一个单元格开始的表格视图。当用户下拉桌面视图时,将显示搜索栏。
self.tableView.contentOffset = CGPointMake(0, 44.0);
self.tableView.contentInset = UIEdgeInsetsMake(20.0, 0.0, 0.0, 0.0);
答案 6 :(得分:1)
我找到了罪魁祸首。将布局选项“调整滚动视图插图”设置为“开”就可以了。
答案 7 :(得分:1)
您需要做的就是选择UITableView所在的视图控制器并显示Attributes Inspector。在Attributes Inspector中,取消选中Extend Edges - >在顶栏和底杆下面。当我的UITableview加载到导航栏和标签栏
下面时,这对我有用答案 8 :(得分:1)
将数据加载到表视图后,只需在iOS 6/7中调用它
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
但请确保将搜索栏添加为表格视图的标题