Изменить анимацию навигации управления
Я удивляюсь, можно ли изменить анимацию контроллера навигации на что-то, где вместо нового вида просто скользит по виду, а текущий вид скользит по мере скольжения нового вида...
У меня есть эта функция, которая просто обнаруживает мои пролистывания, а затем анимирует представления, как это делал бы обычный навигационный контроллер... но я надеюсь, что с вашей помощью смогу найти что-то еще.
// Need to change this to work with viewArray
- (void)swipedScreen:(UISwipeGestureRecognizer*)gesture {
//Left swipe
if (gesture.direction == UISwipeGestureRecognizerDirectionLeft)
{
if (viewCount == 0)
{
viewCount += 1;
// Load a detial view into the (sub)NavController
DetailViewControllerA *detailViewA = [[DetailViewControllerA alloc] initWithNibName:@"DetailViewControllerA" bundle:[NSBundle mainBundle]];
[otherNav pushViewController:detailViewA animated:YES];
}
}
//Right swipe
else if (gesture.direction == UISwipeGestureRecognizerDirectionRight)
{
if (viewCount == 1)
{
viewCount -= 1;
[self.otherNav popViewControllerAnimated:YES];
}
}
}
1 ответ
Решение
Вы можете сделать это с помощью анимационных блоков uiView, таких как этот, который я использую, чтобы показать один мигающий UIView.
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
self.splash.alpha = 0.2;
}
completion:^(BOOL finished) {
[UIView animateWithDuration:1.0 animations:^{
self.splash.alpha = 1.0;
}];
}];
или же
используя код ниже
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[self.splash removeFromSuperview];
[UIView commitAnimations];
для флип-перехода
и для изменения анимации push/pop я использую этот код
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController:self.detailViewController animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
наслаждайтесь кодингом:)
Удачной Коддинга:)