Ios7 UIPercentDrivenInteractiveTransition不插值变换属性

Ios7 UIPercentDrivenInteractiveTransition不插值变换属性,ios7,controllers,Ios7,Controllers,我目前正在尝试在两个视图控制器之间进行交互式转换。这是一个交互式动画。我使用uipercentdriventeractivetransition的子类,并在另一个对象动画制作程序中执行以下动画 我没有成功地使交互插入toVC视图的transform属性 - (void) animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { NSLog(@"Animate!!");

我目前正在尝试在两个视图控制器之间进行交互式转换。这是一个交互式动画。我使用
uipercentdriventeractivetransition
的子类,并在另一个对象动画制作程序中执行以下动画

我没有成功地使交互插入
toVC
视图的
transform
属性

- (void) animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
    NSLog(@"Animate!!");
    //Basic container
    UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
    UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

    fromVC.view.frame = [transitionContext initialFrameForViewController:fromVC];
    toVC.view.frame = [transitionContext finalFrameForViewController:fromVC];

     toVC.view.transform = CGAffineTransformMakeScale(0.9, 0.9);

    //[transitionContext.containerView insertSubview:toVC.view belowSubview:fromVC.view];

    NSTimeInterval duration = [self transitionDuration:transitionContext];

    [UIView animateWithDuration:duration animations:^{
        [fromVC beginAppearanceTransition:NO animated:YES];

        fromVC.view.frame = CGRectMake(0, CGRectGetHeight(fromVC.view.frame), CGRectGetWidth(fromVC.view.frame), CGRectGetHeight(fromVC.view.frame));

        toVC.view.transform = CGAffineTransformIdentity;
        [toVC beginAppearanceTransition:YES animated:YES];
    } completion:^(BOOL finished){

        [transitionContext completeTransition:![transitionContext transitionWasCancelled]];
        if(finished)
        {
            [fromVC endAppearanceTransition];
            [toVC endAppearanceTransition];

        }        
    }];

}
-(void)animateTransfion:(id)transitionContext
{
NSLog(@“动画!!”);
//基本容器
UIViewController*fromVC=[transitionContext ViewControllerWorky:UITransitionContextFromViewControllerKey];
UIViewController*toVC=[transitionContext ViewControllerWorky:UITransitionContextToViewControllerKey];
fromVC.view.frame=[transitionContext initialFrameForViewController:fromVC];
toVC.view.frame=[transitionContext finalFrameForViewController:fromVC];
toVC.view.transform=CGAffineTransformMakeScale(0.9,0.9);
//[transitionContext.containerView insertSubview:toVC.view belowSubview:fromVC.view];
NSTimeInterval持续时间=[自转换持续时间:transitionContext];
[UIView animateWithDuration:持续时间动画:^{
[fromVC beginAppearanceTransition:否动画:是];
fromVC.view.frame=CGRectMake(0,CGRectGetHeight(fromVC.view.frame),CGRectGetWidth(fromVC.view.frame),CGRectGetHeight(fromVC.view.frame));
toVC.view.transform=CGAffineTransformity;
[toVC BeginAppearance过渡:是动画:是];
}完成:^(布尔完成){
[transitionContext completeTransition:![transitionContext transitionWasCancelled];
如果(完成)
{
[fromVC endAppearanceTransition];
[toVC endAppearanceTransition];
}        
}];
}
我想让toVC从一个刻度开始,然后在fromVC从上到下滑动时完成,以适合屏幕

滑动是正确的插值,但变换只是简单地完成,而不是插值


错误在哪里

我也遇到了这个问题。对我来说,解决方案是将
的快照转换为vc.view
,而不是
转换为vc.view
。我不确定为什么这是必要的

您可以使用。您还需要将
设置为vc.view
的转换为
cGraffinetTransformIdentity
,并在动画开始之前将其隐藏。然后,在完成块中取消隐藏它