У меня есть UIView
, который летает сверху, когда я открываю этот контроллер. Я установил Y побуждению UIView
-200 и когда вид нагрузки, ниже называется и все работает отлично:Проблема с UIView Auto Layout Animation
- (void)updateViewConstraints
{
[super updateViewConstraints];
self.popUpViewYConstraint.constant = 37.0f;
self.closeButtonYConstraint.constant = 28.0f;
[self.popUpBaseView setNeedsUpdateConstraints];
[self.closeButton setNeedsUpdateConstraints];
[UIView animateWithDuration:0.25f animations:^{
[self.popUpBaseView layoutIfNeeded];
[self.closeButton layoutIfNeeded];
[self.view layoutIfNeeded];
}];
}
Но теперь у меня есть кнопка закрытия, которая должна оживить UIView
назад к -200, а затем удалите контроллер экрана с экрана. Но эта анимация не состоится. Контроллер вида удаляется напрямую. Вот что я делаю:
- (IBAction)closePressed:(id)sender
{
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
self.navigationController.viewControllers = navigationArray;
[UIView animateWithDuration:2.0f animations:^{
self.popUpViewYConstraint.constant = -200.0f;
[self.popUpBaseView layoutIfNeeded];
} completion:^(BOOL finished){
[navigationArray removeObjectAtIndex: 1];
[self.baseView removeFromSuperview];
[self.view removeFromSuperview];
}];
}
я упомянул this ссылку. Кажется, он работает для них, но не работает для меня. Пожалуйста, помогите.
Что произойдет, если вы удалите код, который удаляет точку зрения? (т. е. просто сделать блок завершения пустым). Кроме того, попробуйте это ... 'animateWithDuration: delay: options: animations: completion' вместо того, который вы используете с опциями ... UIViewAnimationOptionBeginFromCurrentState – Fogmeister
Ничего не происходит. View Controller просто удален без анимации. – Anil
Можете ли вы поставить снимок экрана до и после анимации, отображающей представление. – Fogmeister