Dou*_*ith 26 objective-c ios ios7
假设用户在View Controller中并且想要进入"全屏"类型模式,其中状态栏被隐藏,在iOS 6下,这是一个简单的方法调用来隐藏/显示状态栏,但无论它看起来如何在iOS 7下坚持下去.
我见过这样的解决方案:
- (BOOL)prefersStatusBarHidden {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
但是这不允许它在运行时切换.(它不接受任何论点.)
在我的info.plist中,我已经View controller-based status bar appearance
设置为NO
.
我的智慧结束了.我怎么隐藏它?
Joh*_*ato 74
斯威夫特4
节目:
(UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow)?.isHidden = false
Run Code Online (Sandbox Code Playgroud)
隐藏:
(UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow)?.isHidden = true
Run Code Online (Sandbox Code Playgroud)
Objective-C的
那么这是一种方法:
在myViewController.h中
@interface myViewController : UIViewController {
BOOL shouldHideStatusBar;
}
Run Code Online (Sandbox Code Playgroud)
然后在myViewController.m中
- (void)viewDidLoad {
[super viewDidLoad];
shouldHideStatusBar = YES;
}
- (BOOL)prefersStatusBarHidden {
return shouldHideStatusBar;
}
Run Code Online (Sandbox Code Playgroud)
让我们说当我触摸屏幕时,它应该现在显示状态栏.你需要打电话:setNeedsStatusBarAppearanceUpdate
专门让这个工作,然后一个开关(在这种情况下是bool)来显示/隐藏.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
shouldHideStatusBar = (shouldHideStatusBar)? NO: YES;
[self setNeedsStatusBarAppearanceUpdate];
}
Run Code Online (Sandbox Code Playgroud)
setNeedsStatusBarAppearanceUpdate
只要视图控制器的状态栏属性的返回值发生更改,就应该调用此方法.如果从动画块中调用它,则更改将与动画块的其余部分一起动画.
prefersStatusBarHidden:
返回值布尔值YES指定应隐藏状态栏.默认值为NO.
讨论如果更改此方法的返回值,请调用setNeedsStatusBarAppearanceUpdate方法.
要指定子视图控制器应控制首选状态栏隐藏/取消隐藏状态,请实现childViewControllerForStatusBarHidden方法.
如果您计划使用iOS 6的应用程序,也可以查看此帖子
归档时间: |
|
查看次数: |
19739 次 |
最近记录: |