私はボタンで全画面表示できるカスタムビューコントローラを持っています。通常はビューの埋め込みビューです。私の埋め込みからフルスクリーン入力しますこれです:これは私がフルスクリーンのアニメーションを入力のステータスバーを非表示にすることを除いて、正常に動作し、終了でそれを示して完全な画面遷移が途切れてしまう
private func exitFullScreenToEmbed() {
let frame = self.view.window?.convert(self.view.frame, to: self.proxyView?.superview)
self.proxyView?.superview?.addSubview(self.view)
self.view.frame = frame!
self.isFullscreen = false
UIView.animate(withDuration: 0.25, animations: {
self.view.frame = self.proxyView!.frame
self.view.layoutIfNeeded()
self.setNeedsStatusBarAppearanceUpdate()
}) { (_) in
self.proxyView?.removeFromSuperview()
self.proxyView = nil
}
}
:
private func enterFullScreenFromEmbed() {
self.proxyView = UIView(frame: self.view.frame)
self.proxyView?.isHidden = true
self.proxyView?.autoresizingMask = self.view.autoresizingMask
self.view.superview?.addSubview(self.proxyView!)
// Now set the frame to the screen frame
let frame = self.view.window?.convert(self.view.frame, from: self.proxyView?.superview)
self.view.window?.addSubview(self.view)
self.view.frame = frame!
self.isFullscreen = true
UIView.animate(withDuration: 0.25) {
self.view.frame = self.view.window!.bounds
self.view.layoutIfNeeded()
self.setNeedsStatusBarAppearanceUpdate()
}
}
そして、フルスクリーンから出てきます全画面アニメーション。これにより、私のトップビューは、アニメーション化されずに元の位置に戻ります。
isFullscreen
変数はステータスバーを隠すものであることに注意してください。
お知らせ両方の上部と風景1(景観に見やすい)の下部:
override var prefersStatusBarHidden: Bool {
return isFullscreen
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
はここでアニメーションのGIFファイルです。上部には、プレーヤーのフレームがすぐに元の位置に設定され、20px(またはステータスバーの高さに関係なく)すべてが下に移動します。
これは、隠しステータスバーと関係しています。誰にも解決策がありますか?