在iOS 7状态栏上方添加子视图
我有一个小的矩形视图,从我的应用程序顶部向下动画。我需要它在屏幕的顶部,并在状态栏上向下设置动画,但是动画视图显示在状态栏下。有人知道我如何通过状态栏获取它吗 这是我目前正在做的事情在iOS 7状态栏上方添加子视图,ios,view,statusbar,addsubview,Ios,View,Statusbar,Addsubview,我有一个小的矩形视图,从我的应用程序顶部向下动画。我需要它在屏幕的顶部,并在状态栏上向下设置动画,但是动画视图显示在状态栏下。有人知道我如何通过状态栏获取它吗 这是我目前正在做的事情 [self.navigationController.view addSubview:self.headerView]; 它工作正常,位置正确,只是它位于状态栏下方。有什么想法吗 编辑:我知道这是可能的,因为snapchat做到了 您可以做的一个选择是,当您为自己的headerView设置动画时 拍摄状态栏的快照
[self.navigationController.view addSubview:self.headerView];
它工作正常,位置正确,只是它位于状态栏下方。有什么想法吗
编辑:我知道这是可能的,因为snapchat做到了 您可以做的一个选择是,当您为自己的headerView设置动画时
// 1. take snapshot of the status bar
UIView* snapshotView = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO];
// 2. hide statusbar
_statusBarHidden = YES;
[self setNeedsStatusBarAppearanceUpdate];
// you need to set "View controller-based status bar appearance" option to yes on plist
- (BOOL)prefersStatusBarHidden
{
return _statusBarHidden;
}
// 3. add subview of snapshot view on the statusbar position
CGRect frame = self.view.frame;
frame.height = [[UIApplication sharedApplication] statusBarFrame].size.height;
[self.view addSubView:snapshotView];
// 4. do the header view animation over snapshot view
.. Just do the animation you already were doing
// 5. remove snapshot view and show statusbar again.
[snapshotView removeFromSuperview];
_statusBarHidden = NO;
[self setNeedsStatusBarAppearanceUpdate];
你不能把任何东西放在状态栏上。您最好在视图显示在屏幕上时将其关闭,然后在删除子视图时重新打开。@nhgrif如何动态地将其关闭,然后再打开?我看过一些帖子,上面提到在plist文件中添加了一些内容,但我只需要在特定的视图控制器上关闭它5秒钟,而不是我的整个
plist
选项,我相信,它允许单个视图控制器自己关闭或打开。我如何拍摄该条的快照?