私はiPadアプリでサブビューとして追加しているUIViewControllerを持っています。 UIViewcontrollerには、ストーリーボードに設定されたautolayoutごとにサイズ変更されたUITableViewがあります。このビューをiPadの中央から右端に移動するアニメーションを表示したい(ランドスケープモード)。このため、最初は幅を0に設定し、アニメーションブロックでそれを増やしています。アニメーションはうまくいくが、UIViewController内のテーブルビューはアニメーションの前に追加される。それで、アニメーション化されません。 ITは親(UIViewController)とともに拡張する必要があります。私のコード:コンテンツのアニメーションがAutoLayoutのコンテンツを含むUIViewControllerを追加するときに機能しない
@IBAction func tappedNotifications(_ sender: UIButton) {
let storyboard = UIStoryboard(name: "Content_iPad", bundle: nil)
let notificationSettingsVC = storyboard.instantiateViewController(withIdentifier:"SettingsViewController_iPad")
notificationSettingsVC.view.frame = CGRect(x: 380, y: 0, width: 0, height: 775)
self.view.addSubview(notificationSettingsVC.view)
notificationSettingsVC.didMove(toParentViewController: self)
UIView.animate(withDuration: 0.7, animations: {
notificationSettingsVC.view.frame = CGRect(x: 380, y: 0, width: 0, height: 775)
notificationSettingsVC.view.frame = CGRect(x: 380, y: 0, width: 570, height: 775)
notificationSettingsVC.view.setNeedsLayout()
}, completion: {
(completed) -> Void in
})
}
viewwillappear()メソッドのnotificationSettingsVCコントローラでアニメーションを実行しても正常に動作しない –