我正在使用 aUIPageViewController
来显示照片库类型的应用程序。
每页一张照片,每页之间滑动。
当第UIPageViewController
一个出现时(即通过点击图库视图中的照片),状态栏会隐藏。
这是正确的,除了在内部显示的第一个(UIViewController
即根视图控制器)viewWillAppear
并且短了 20 个点(即状态栏的高度)。viewDidAppear
self.view.height
它只影响初始视图控制器。当我旋转视图控制器并重新布局界面(使用 AutoLayout)时,一切正常,高度恢复到应有的水平。
如果我摆脱UIPageViewController
它一切正常。
在我UIPageViewController
做这个...
- (void)viewDidLoad
{
[super viewDidLoad];
self.modelController.event = self.event;
PhotoViewController *initialController = [self.modelController viewControllerAtIndex:self.initialIndex storyboard:self.storyboard];
[self setViewControllers:@[initialController]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:^(BOOL finished) {
}];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
}
然后在 PhotoViewController...
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.commentTopLayoutConstraint.constant = self.view.frame.size.height;
self.commentHeightLayoutConstraint.constant = self.view.frame.size.height - TOP_SPACING;
self.embeddedCommentView.hidden = NO;
if (self.imageView.image == nil) {
[self configureView];
}
}
这应该commentView.height
等于视图高度减去 60,然后将评论视图向下推,使其从屏幕底部消失。
这适用于除第一个之外的所有视图控制器(即其他页面)。
如果我自动旋转它就可以了。就在初始负载上。