UIView transitionWithView动画属性更改:从右侧滑入?

sto*_*one 8 iphone animation objective-c uitextview ios

我有一个只读的UITextView,我正在更新文本.当新文本出现时,我希望它按如下方式设置动画:新文本从右侧滑入,因为旧文本向左侧滑动.

是否可以使用transitionWithView执行此操作?如果没有,最好的方法是什么?我可以让它做一个CrossDissolve,但那不是我正在寻找的动画:

    [UIView transitionWithView:self.storyTextView
                  duration:0.5
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    [self.storyTextView setText:withStory.storyText];
                }
                completion:nil];
Run Code Online (Sandbox Code Playgroud)

坚持左到右动画的原因是因为最终我希望用户能够通过在UITextView上向左滑动来触发它.

jrt*_*ton 28

CATransition允许你这样做,过渡类型为'push',子类型为'from right'.它非常简单易用:

CATransition *transition = [CATransition new];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;

// Make any view changes
self.textView.text = newText;

// Add the transition
[self.textView.layer addAnimation:transition forKey:@"transition"];
Run Code Online (Sandbox Code Playgroud)

请注意,虽然这是你所要求的,但如果没有一些额外的修补,就不能很好地适应手势 - 将它绑定到你需要做的事情,比如将图层速度设置为0并手动更新动画的进度以匹配您的手势.