Анимация UIView не работает при добавлении ChildViewController - PullRequest
0 голосов
/ 29 августа 2018

У меня есть MasterViewController, и я добавляю ChildViewController внутри MasterViewController. Внутри MasterViewController я сделал верхнюю панель кнопок и принял вид контейнера. В этом представлении контейнера я хочу переместить мои ChildViewControllers. И это произойдет при нажатии кнопки в MasterViewController

Вот как я добавляю ChildViewController

func addViewControllerAsChildViewController(childVC : UIViewController) {
    oldVC = newVC
    childVC.view.frame  = viewContainer.bounds
    childVC.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    addChildViewController(childVC)
    childVC.didMove(toParentViewController: self)
    // Where ViewContainer is dedicated area inside the MasterViewController
    viewContainer.addSubview(childVC.view)
}

А это мои нажатия кнопок

 @IBAction func onClickBtnNewList(_ sender:  UIButton) {
    if !(newVC is NewListVC) {
        initNewListVC()
        addViewControllerAsChildViewController(childVC: targetViewController)
    }
    UIView.animate(withDuration: 4000, animations: {
        self.viewIndicators.frame = sender.frame.offsetBy(dx:0,dy:2)
    })
}

@IBAction func onClickBtnSavedList(_ sender: UIButton) {
    if !(newVC is SavedListVC) {
        initSavedListVC()
        addViewControllerAsChildViewController(childVC: targetViewController)
    }
    UIView.animate(withDuration:400, animations: {
        self.viewIndicators.frame = sender.frame.offsetBy(dx:0,dy:2)
    })
}

Мой ChildViewControllers правильно раздувается. Но проблема в кнопке. Нажмите, есть другой вид, который я оживляю при нажатии и перемещая его ниже кнопки. Вы можете видеть, что я использовал следующий код при нажатии кнопки. Анимация начиналась и заканчивалась, перемещая связанный вид в исходное положение. и он не двигается в мою ожидаемую область, см. код ниже

UIView.animate(withDuration: 4000, animations: {
    self.viewIndicators.frame = sender.frame.offsetBy(dx:0,dy:2)
})

но это не работает. Но если я закомментирую следующие строки, которые присоединяют ChildViewController, анимация движется плавно, а просмотр перемещается в целевую область

/*
if !(newVC is NewListVC) {
    initNewListVC()
    hideOrShowViewController(targetViewController: newVC!)
}
*/

Теперь у вас есть идеи, почему это происходит ?? в чем может быть проблема? Я использую Xcode 9 и swift 4 Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...