iOS 9ではsetStatusBarHidden(_:withAnimation:)
が廃止され、代わりに[UIViewController prefersStatusBarHidden]
が使用されていますが、iOS 9では代わりにステータスバーを非表示にしたいスライドアニメーション?setStatusBarHidden(_:withAnimation :) iOS 9では廃止されました
答えて
のGIF
コード
class ViewController: UIViewController {
var isHidden:Bool = false{
didSet{
UIView.animate(withDuration: 0.5) {() -> Void in
self.setNeedsStatusBarAppearanceUpdate()
}
}
}
@IBAction func clicked(sender: AnyObject) {
isHidden = !isHidden
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation{
return .slide
}
override var prefersStatusBarHidden: Bool{
return isHidden
}
}
スウィフト3
、preferredStatusBarUpdateAnimation
に
参照
- 個の計算さ変数はスウィフト3
didSet
(に更新を移動することで、私は少しレオの驚くべき答えをクリーンアップしている
class ViewController: UIViewController {
var isHidden:Bool = false
@IBAction func clicked(sender: AnyObject) {
isHidden = !isHidden
UIView.animate(withDuration: 0.5) {() -> Void in
self.setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return UIStatusBarAnimation.slide
}
override var prefersStatusBarHidden: Bool {
return isHidden
}
}
class ViewController: UIViewController {
@IBAction func clicked(sender: AnyObject) {
statusBarHidden = !statusBarHidden
}
var statusBarHidden = false {
didSet {
UIView.animate(withDuration: 0.5) {() -> Void in
self.setNeedsStatusBarAppearanceUpdate()
}
}
}
override var prefersStatusBarHidden: Bool {
return statusBarHidden
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
}
私はdidSet時々...私はちょうど私の古いコーディング方法に慣れていますが、これはずっと良いsoooooooです:) – budidino
あなたは客観的Cでコーディングされている場合は、ここでは解決策は次のとおりです。)(レオのObjective Cのバージョン:Pのおかげで男!!!)
、変数
bool isHidden;
isHidden = false;//in viewDidload()
を宣言し、あなたがステータスバーに
isHidden = true;
[UIView animateWithDuration:0.6 animations:^{
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}];
を非表示にしたいときには、この2つの方式を追加した後、このコードを追加します
-(UIStatusBarAnimation) preferredStatusBarUpdateAnimation
{
return UIStatusBarAnimationFade;
}
-(BOOL) prefersStatusBarHidden
{ return isHidden;}
は(笑)
- SWIFT 3 ALTERNATIVE
やあみんなは、使用することにより、スウィフト3のためにそれについて行くのあまりすっきり方法を見つけたあなたの問題が解決することを願っていますそれぞれの上書きとのプライベートvarペアリング。 私のオリジナルのポスト:ここ
抜粋です:
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
get {
return .slide
}
}
private var statusBarStyle : UIStatusBarStyle = .default
override var preferredStatusBarStyle: UIStatusBarStyle {
get {
return statusBarStyle
}
}
private var statusBarStatus : Bool = false
override var prefersStatusBarHidden: Bool {
get {
return statusBarStatus
}
}
私はそのようにように関数内で呼び出すことができます。ここhttps://stackoverflow.com/a/42083459/7183483
しかし、それのJISTだ(これは私の例の一つでありますカスタム関数は無視されます)。
func sliderView(sliderView: SliderView, didSlideToPlace: CGFloat, within: CGFloat) {
let val = (within - (didSlideToPlace - sliderView.upCent))/(within)
print(val)
//Where you would change the private variable for the color, for example.
if val > 0.5 {
statusBarStyle = .lightContent
} else {
statusBarStyle = .default
}
UIView.animate(withDuration: 0.5, animations: {
sliderView.top.backgroundColor = UIColor.black.withAlphaComponent(val)
self.coverLayer.alpha = val
self.scroll.backgroundColor = colors.lightBlueMainColor.withAlphaComponent(val)
}, completion: {
value in
//If you do not call setNeedsStatusBarAppearanceUpdate() in an animation block, the animation variable won't be called it seems.
UIView.animate(withDuration: 0.4, animations: {
self.animating = true
//Where you set the status for the bar (your part of the solution)
self.statusBarStatus = false
//Then you call for the refresh
self.setNeedsStatusBarAppearanceUpdate()
})
})
}
これはすばらしい解決策です。ステータスを隠しフラグを動的にすることは考えていませんでした。 – phatmann
- 1. XmlReader.ReadStringは廃止または廃止されましたか?
- 2. sizeWithFont:constrainedToSize:lineBreakMode:iOS7で廃止されました
- 3. 廃止予定の警告を抑制する方法 "dispatch_get_current_queue()は廃止されました... iOS 6.0では廃止されました"
- 4. TWTweetComposeViewController IOS6で廃止されました
- 5. TouchXMLは廃止されましたか?
- 6. $ HADOOP_HOMEは廃止されました。Hadoop
- 7. detectedPhoneNumbersは廃止されましたか?
- 8. 9Pは廃止されましたか?
- 9. NowJSは廃止されましたか?
- 10. XmlValidatingReaderクラスは廃止されました
- 11. Railsは廃止されましたか?
- 12. 'initWithFrame:reuseIdentifier'は廃止されました
- 13. Flotチェックボックスが廃止されました
- 14. ボタンsetTextAppearanceが廃止されました
- 15. rgl.snapshot()が廃止されました
- 16. SlidingDrawer廃止されました
- 17. eregiが廃止されました。
- 18. クラス/メソッドをC++で廃止または廃止されることにする
- 19. 'initWithRequest:delegate:'は廃止されました:iOS 9.0では廃止予定です - NSURLSessionを使用してください(NSURLSession.hを参照してください)
- 20. 廃止されたライブラリクラス
- 21. バージョン1.6で廃止されたGMSMapViewメソッド
- 22. EnvironmentPermission Denyは.Net 4.0では廃止されました。
- 23. MPMoviePlayerControllerは廃止されました。今は何ですか?
- 24. はdocument.allとdocument.layersです現在は廃止されました
- 25. ChromeでPathSegListが廃止され、削除されました。48
- 26. HTMLマップタグは廃止され、廃止予定ですか?
- 27. iPhone - 廃止予定のメソッドは、いつ廃止されるのですか?
- 28. 定数kCGColorsはiPhoneで廃止されましたか?
- 29. stringByAddingPercentEscapesUsingEncodingは9.0で廃止されました。
- 30. devise.registrations.reasonsはymlファイルで廃止されましたか?
マインズは、目標ブロック内にあってもアニメーション化されません。何か案は? –
「コントローラベースのステータスバーの外観を表示」= NOですか? –
テストしていませんが、このキーがNOの場合は動作しません。 – Leo