Я реализую пользовательские навигационные переходы и используя UIPercentDrivenInteractiveTransition, чтобы сделать трюк.UIPercentDrivenInteractiveTransition cancelTransition включает экран черный
У меня есть неинтерактивный переход, отлично работающий, и я использую блок анимации для обработки анимации перехода, но после добавления в интерактивные переходы экран теперь становится черным, если я отменяю переход.
Вот мой код, который отслеживает жест:
-(void)userDidPan:(UIScreenEdgePanGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:nil];
if (recognizer.state == UIGestureRecognizerStateBegan) {
// We're being invoked via a gesture recognizer – we are necessarily interactive
self.hasActiveInteraction = YES;
self.interactiveTransition = [BXTPercentDrivenInteractiveTransition new];
[[BXTNavigationController sharedNavigationController] popViewControllerAnimated:YES];
}
else if (recognizer.state == UIGestureRecognizerStateChanged) {
CGFloat ratio = location.x/CGRectGetWidth(recognizer.view.frame);
NSLog(@"Percentage complete: %0.2f",ratio*100);
[self.interactiveTransition updateInteractiveTransition:ratio];
}
else if (recognizer.state == UIGestureRecognizerStateEnded) {
// Depending on our state and the velocity, determine whether to cancel or complete the transition.
CGFloat ratio = location.x/CGRectGetWidth(recognizer.view.frame);
if (ratio > 0.50) {
NSLog(@"Completing");
[self.interactiveTransition finishInteractiveTransition];
}
else {
NSLog(@"Canceling");
[self.interactiveTransition cancelInteractiveTransition];
}
}
}
... и вот (сокращенная) смотреть на мой анимации блока, когда выскакивают от контроллера вида:
[UIView animateWithDuration:kBXTNavigationTimingDuration
delay:0
options:animationOption
animations:^{
toVC.view.frame = destinationFrameForPoppedView;
fromVC.view.frame = CGRectOffset(fromVC.view.frame, fromVC.view.frame.size.width, 0);
} completion:^(BOOL finished) {
[darkeningView removeFromSuperview];
[_transition.secondaryTransitionViews enumerateObjectsUsingBlock:^(BXTTransitionView *transitionView, NSUInteger idx, BOOL *stop) {
[transitionView.view removeFromSuperview];
}];
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
}];
Любые идеи почему экран становится черным при отмене анимации pop-the-left-pop-a-left с пользовательским переходом на навигацию?
У меня такая же проблема в моем проекте ... Я использую [** this **] (http://dativestudios.com/blog/2013/ 09/29/interactive-transitions /) и выглядит так же, как вы ... Пример проекта учебника отлично работает, и я не вижу, что я сделал неправильно, за исключением того факта, что у меня есть только 1 объект анимации как для push, так и для pop, а не 2. –