Вручную исчезает в новом добавленном представлении? Я хочу, чтобы представление исчезало при добавлении в стек через [self.view addSubview:someSecondaryViewController.view]; Как мне оживить этот вызов, чтобы вид затухал (и вышел)? Ответ 1 Установите анимацию до нуля до анимации, а затем измените альфу на один. [fadingView setAlpha:0.0]; [containerView addSubview:fadingView]; [UIView beginAnimations:nil context:nil]; [fadingView setAlpha:1.0]; [UIView commitAnimations]; Прежде чем удалить представление, просто измените альфу обратно на нуль. Кстати, иерархия представлений больше дерева, чем стека. Edit: Если у вас нет другой очистки после окончания анимации при исчезновении вида, используйте: [UIView setAnimationDelegate:fadingView]; [UIView setAnimationDidStopSelector:@selector(removeFromSuperview)]; Если вы уже установили didStopSelector, тогда вызовите removeFromSuperview. Ответ 2 Вы также можете использовать блоки для удаления представления из своего супер-представления после того, как он закончил анимацию постепенного исчезновения: [UIView animateWithDuration:0.2 animations:^{viewOut.alpha = 0.0;} completion:^(BOOL finished){[viewOut removeFromSuperview];}]; Ответ 3 И в Свифте... В someSecondaryViewController.view.alpha = 0.0 self.view.addSubview(someSecondaryViewController.view) UIView.animate(withDuration: 0.2, animations: { self.someSecondaryViewController.view.alpha = 1.0 }) Из UIView.animate(withDuration: 0.2, animations: { self.someSecondaryViewController.view.alpha = 0.0 }) { (done: Bool) in self.someSecondaryViewController.view.removeFromSuperview() }
Ответ 1 Установите анимацию до нуля до анимации, а затем измените альфу на один. [fadingView setAlpha:0.0]; [containerView addSubview:fadingView]; [UIView beginAnimations:nil context:nil]; [fadingView setAlpha:1.0]; [UIView commitAnimations]; Прежде чем удалить представление, просто измените альфу обратно на нуль. Кстати, иерархия представлений больше дерева, чем стека. Edit: Если у вас нет другой очистки после окончания анимации при исчезновении вида, используйте: [UIView setAnimationDelegate:fadingView]; [UIView setAnimationDidStopSelector:@selector(removeFromSuperview)]; Если вы уже установили didStopSelector, тогда вызовите removeFromSuperview.
Ответ 2 Вы также можете использовать блоки для удаления представления из своего супер-представления после того, как он закончил анимацию постепенного исчезновения: [UIView animateWithDuration:0.2 animations:^{viewOut.alpha = 0.0;} completion:^(BOOL finished){[viewOut removeFromSuperview];}];
Ответ 3 И в Свифте... В someSecondaryViewController.view.alpha = 0.0 self.view.addSubview(someSecondaryViewController.view) UIView.animate(withDuration: 0.2, animations: { self.someSecondaryViewController.view.alpha = 1.0 }) Из UIView.animate(withDuration: 0.2, animations: { self.someSecondaryViewController.view.alpha = 0.0 }) { (done: Bool) in self.someSecondaryViewController.view.removeFromSuperview() }