私は2つのケースでiOS9で同じ動作を見つけました:UINavigationController
でポップ・ナビゲーション中
1)即時回転しながら、
2)フルスクリーンビデオプレイヤーを見ながら、それ以降のプレイヤーを見ながら、風景から肖像画への回転で2)。
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
if (!self.tabBar.window) return;
[coordinator animateAlongsideTransition: ^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
CGRect newBounds = self.tabBar.bounds;
newBounds.size.width = size.width;
self.tabBar.bounds = newBounds;
[self.view.superview setNeedsLayout];
}
completion: nil];
}
あなたは第二の問題は修正されませんreturn
文字列を記述しない場合:UITabBarController
のサブクラスを作成し、次のようにUIContentContainer
プロトコルからのメソッドを実装する必要がありiOS8 +上の問題を解決するために
。スウィフトに同じ追加
:
extension UITabBarController {
public override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
if let _ = self.tabBar.window {
coordinator.animateAlongsideTransition({ (context) in
self.tabBar.bounds.size.width = size.width
self.view.superview?.setNeedsLayout()
}, completion: nil)
}
}
}
こんにちは、まだ問題が発生したことは、それを再現するため、これが動作するかどうかわかりません。しかし、誠実に私はそう信じています。ありがとう! –
iPad + iPhone6で再生する:タブバーを使わずに画面に入り、タブバーを表示してデバイスを回転させる。戻る –