此问题与navigation-bar-appear-over-the-views-with-new-ios7-sdk类似 ,但有一个细微的差别。解决方案如下:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
如果tableView嵌入在navigationController上,它确实对我有效,但如果tableView不在此navigationController层次结构下(例如,tableView嵌入在控制器上,则此控制器是另一个控制器的子视图,它基于navigationController),这个解决方案失败了。
所以我很困惑如何解决这个问题。如果你能伸出援助之手,对我来说会有很大的帮助。谢谢。
答案 0 :(得分:0)
我认为您需要将这些行直接移到UINavigationController
下的控制器。
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
编辑:作为黑客,您可以手动设置桌面位置,如下所示。
CGFloat tableTop = 44.0f; //iOS7
if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] == NSOrderedAscending) {
tableTop = 44; //iOS6
}
CGRect frame = self.tableView.frame;
self.tableView.frame = CGRectMake(frame.origin.x, tableTop, frame.size.width, frame.size.height);