App Store 更新到iOS11之后,沉浸式体验也许会在不久之后🔥起来吧!
我的粗略感受
- 进入到某一详情页面需要隐藏到statusBar,导航栏的返回,让用户自然而然的沉浸在当前页面是第一步
- 第二步就是....剩下的交给产品和设计的妹子们吧。
技术如何去实现呢
- 这里分几步来说:
- 已经被遗弃的方法(iOS2.0 - iOS9.0)
@interface UIApplication(UIApplicationDeprecated)
// Setting the statusBarStyle does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic) UIStatusBarStyle statusBarStyle NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController preferredStatusBarStyle]") __TVOS_PROHIBITED;
- (void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController preferredStatusBarStyle]") __TVOS_PROHIBITED;
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]") __TVOS_PROHIBITED;
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]") __TVOS_PROHIBITED;
@end
- 在iOS7 之后苹果推荐方式如下:
@property(nonatomic, readonly) BOOL prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO
@property(nonatomic, readonly) UIStatusBarStyle preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault
- 对于这两种方法的实现方式
- 第一种方法我们只需要在对应的地方进行如下的设置即可:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
[[UIApplication sharedApplication] setStatusBarHidden:YES];
- 第二种方法只需要在对应的控制器中如下实现:
- (BOOL)prefersStatusBarHidden{
return YES;
}
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleDefault;
}
- 那么他们之间有什么相同点呢
- 我们只需要在info.plist如下配置即可:
1.Status bar is initially hidden:初始化状态栏
2.View controller-based status bar appearance
- 如果采用的是第二种方式,并且有导航栏的你可能还需要在UINavigationController中实现:
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
- (UIViewController *)childViewControllerForStatusBarHidden{
return self.topViewController;
}
-
时间匆忙,大概就留了一些关键代码,大家有不懂的可以直接留言,我会在第一时间回复大家的哦
-
有写的不详细的或者错误的地方还请大家帮忙修正哦,一起成长!
-
最后既然看到这里了,别忘记star哦
网友评论