Xcode настраиваемая анимация
У меня проблема с анимацией перехода между двумя контроллерами раскадровки. У меня есть проект singleView с двумя контроллерами представления в раскадровке.
Теперь я хочу сделать собственную анимацию перехода:
- мой текущий контроллер вида должен исчезнуть слева
- новый контроллер вида должен исходить справа
У меня уже есть UIStoryboardSegue
учебный класс.
Но что я должен написать в -(void)perform{}
метод??
Большое спасибо,
Джонас.
1 ответ
Решение
Для этого простого примера вы можете попробовать что-то вроде этого:
- (void)perform {
UIViewController* source = (UIViewController *)self.sourceViewController;
UIViewController* destination = (UIViewController *)self.destinationViewController;
CGRect sourceFrame = source.view.frame;
sourceFrame.origin.x = -sourceFrame.size.width;
CGRect destFrame = destination.view.frame;
destFrame.origin.x = destination.view.frame.size.width;
destination.view.frame = destFrame;
destFrame.origin.x = 0;
[source.view.superview addSubview:destination.view];
[UIView animateWithDuration:1.0
animations:^{
source.view.frame = sourceFrame;
destination.view.frame = destFrame;
}
completion:^(BOOL finished) {
UIWindow *window = source.view.window;
[window setRootViewController:destination];
}];
}