Вручную исчезает в новом добавленном представлении?
Я хочу, чтобы представление исчезало при добавлении в стек через
[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()
}