2017-05-29 9 views
0

私は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 

    }) 
} 
+0

viewwillappear()メソッドのnotificationSettingsVCコントローラでアニメーションを実行しても正常に動作しない –

答えて

0

あなたのアニメーションブロック内で0と570の両方にその幅をアニメーション化するために、あなたの通知ビューコントローラを言っているように見え、0

@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: 570, height: 775) 
     notificationSettingsVC.view.setNeedsLayout() 
    }, completion: { 
     (completed) -> Void in 

    }) 
} 
に幅を設定変更をフレームに削除してみてください
+0

まだ動作していません。私はストーリーボードからのビューを使用していて、コーディングによって作成されていないため問題があると思われます – pankaj

+0

ビューの詳細ストーリーボードにコントローラが設定されているあなたのビューコントローラ内の眺め – zfetters

関連する問題