tableview部分隐藏第一次加载iOS7 SDK

时间:2014-02-24 03:12:15

标签: ios iphone objective-c uitableview

此问题与navigation-bar-appear-over-the-views-with-new-ios7-sdk类似 ,但有一个细微的差别。解决方案如下:

    if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;
如果tableView嵌入在navigationController上,它确实对我有效,但如果tableView不在此navigationController层次结构下(例如,tableView嵌入在控制器上,则此控制器是另一个控制器的子视图,它基于navigationController),这个解决方案失败了。

所以我很困惑如何解决这个问题。如果你能伸出援助之手,对我来说会有很大的帮助。谢谢。

1 个答案:

答案 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);