iPhone:HOWTO用平移手势移动状态栏

像Instagram – EXPLORE Tab,当我滚动内容时,状态栏也会移动。

总是调用FullScreenScroll ,就像这里 ,当用户滚动tableView时,NavigationBar&TabBar滚动显示或隐藏在同一时间。

我的问题是,不仅NavigationBar&TabBar,我也想使StatusBar遵循手指移动。

最后,这是真正的全屏。

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

这是获得状态栏窗口的最佳解决scheme

UIWindow *statusBarWindow = (UIWindow *)[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"]; 

然后改变框架

我不知道为什么downvote没有评论或理由我的问题。 虽然,我find了一个解决scheme来实现移动状态栏。

感谢我提出的这个问题和答案 ,我可以在滚动时改变状态栏的框架,如下所示:

 - (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; } } } 

您可以通过调用以下animation来设置隐藏状态栏:

[[UIApplication sharedApplication] setStatusBarHidden:BOOL withAnimation:UIStatusBarAnimation]

如果您想要逐个像素地移动状态栏,则需要采取更具创造性的方法。 我相信Instagram这样做的方式是通过状态栏的图像表示(如状态栏的屏幕截图),隐藏实际状态栏,然后随着用户的滚动而上下移动图像表示。