我注意到iPhone上的NavigationController,高度为460.所以除了状态栏外,它还包括整个屏幕。
然而,当我在坐标0处添加一些内容时,它会显示在NavigationBar之后,尽管导航栏的大小包含在高度中(意味着此视图的整个框架都会突出屏幕)。
我犯了错误吗?如果没有,为什么这样结构呢?
NSLog(@"Frame: %@", [NSValue valueWithCGRect: self.view.frame]); // prints {(0, 20), (320, 460)}
UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame: CGRectMake(0, self.navigationController.navigationBar.frame.size.height, self.view.frame.width, 50)];
[self.view addSubview: scrollView]; // showing up 44px *after* the nav bar
答案 0 :(得分:0)
我已经回答了你的其他类似问题,但这里有一个问题。
在viewDidLoad
中,您会看到视图高度为460,因为此时它尚未调整为导航栏的大小。
但是如果你在viewWillAppear
中打出相同的框架,你会看到现在已经为导航栏调整了框架高度。
因此,如果您想在viewDidLoad
中添加内容,则需要根据视图框添加内容,添加任意大小调整蒙版将执行您想要的任务,并在视图出现后看到它正确调整。 / p>