首次加载iOS7 SDK时部分隐藏的tableview
这个问题与 ,但有一个细微的区别。解决方案如下:首次加载iOS7 SDK时部分隐藏的tableview,ios,iphone,objective-c,uitableview,Ios,Iphone,Objective C,Uitableview,这个问题与 ,但有一个细微的区别。解决方案如下: if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone; 如果tableView嵌入到navigationController上,它确实对我有效,但如果tableView不在此navigationController层次结构下(例如,tableView嵌入到控制器上,
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
如果tableView嵌入到navigationController上,它确实对我有效,但如果tableView不在此navigationController层次结构下(例如,tableView嵌入到控制器上,此控制器是另一个基于navigationController的控制器的子视图),则此解决方案失败
因此,我不知道如何解决这个问题。如果您能帮我一把,那将对我有很大帮助。谢谢。我相信您需要将这些行移到
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);
如果你正在使用故事板,你可以在顶部布局指南中添加一个约束,如本文所示:可悲的是,我没有使用故事板…所有这些都是代码。也许这是针对我的情况的最佳解决方案,它确实很好用,谢谢