与Instagram一样 - “探索”标签,当我滚动内容时,状态栏也会移动。
当用户滚动tableView,NavigationBar&时,总是调用 FullScreenScroll ,如here。 TabBar会滚动显示或隐藏在同一时间。
我的问题是,不仅仅是NavigationBar& TabBar,我也想让StatusBar跟随手指移动。
最后,它真的是全屏。
答案 0 :(得分:12)
这是获得状态栏窗口的最佳解决方案
UIWindow *statusBarWindow = (UIWindow *)[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"];
然后更改框架
答案 1 :(得分:9)
我不知道为什么在没有评论或理由的情况下对我的问题进行投票。虽然,我找到了一个实现移动状态栏的解决方案。
感谢我提出的question和answer,我可以在滚动时改变statusBar的框架:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSArray *windows = [[UIApplication sharedApplication] FEX_windows];
for (UIWindow *window in windows) {
if ([window isKindOfClass:NSClassFromString(@"UIStatusBarWindow")]) {
CGRect frame = window.frame;
frame.origin.y -= 5;
window.frame = frame;
}
}
}
答案 2 :(得分:0)
您可以通过调用以下方式设置隐藏动画的状态栏:
[[UIApplication sharedApplication] setStatusBarHidden:BOOL withAnimation:UIStatusBarAnimation]
如果您想逐个像素地移动状态栏,则需要采取更具创造性的方法。我相信Instagram的方式是通过拍摄状态栏的图像表示(如状态栏的屏幕截图),隐藏实际状态栏,然后在用户滚动时上下移动图像表示。
答案 3 :(得分:0)
if let statusBarWindow:UIWindow = UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow {
statusBarWindow.frame.origin.y = -5
}