iOS:UIView动画,不进行动画制作

iOS:UIView动画,不进行动画制作,ios,uiview,uiviewanimation,Ios,Uiview,Uiviewanimation,有一个令人费解的问题。我有一个通用应用程序,在iPad和iPhone版本之间有很多共享代码。NIB中有不同的布局,但本质上是相同的视图和视图层次结构-一个UIView用作两个同级UITextView的容器 UIView主视图和子视图: UITextView passageTextView UITextView注释TEXTVIEW 一个UITextView隐藏,另一个可见 下面是我的代码。注释掉的部分是我最初的动画尝试。这在iPad上的效果与预期一样,但在iPhone上却没有。未注释部分为take

有一个令人费解的问题。我有一个通用应用程序,在iPad和iPhone版本之间有很多共享代码。NIB中有不同的布局,但本质上是相同的视图和视图层次结构-一个UIView用作两个同级UITextView的容器

UIView主视图和子视图:
UITextView passageTextView
UITextView注释TEXTVIEW

一个UITextView隐藏,另一个可见

下面是我的代码。注释掉的部分是我最初的动画尝试。这在iPad上的效果与预期一样,但在iPhone上却没有。未注释部分为take 2,使用文档中推荐的方法。未注释的代码在iPad或iPhone上都不起作用-它隐藏/取消隐藏我的视图,但没有任何动画。如果我将代码添加到完成块中,它也会被执行,因此它正在做一些事情,只是没有设置动画

/*  
[UIView beginAnimations:nil context:nil];  
[UIView setAnimationDuration:1.0];  
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainView cache:YES];  

passageTextView.hidden = YES;  
notesTextView.hidden = NO;  

[UIView commitAnimations];  
*/  

UIViewAnimationOptions options = UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationTransitionFlipFromRight;  

[UIView transitionWithView:mainView  
                  duration:1.0  
                   options:options  
                animations:^{ passageTextView.hidden = YES; notesTextView.hidden = NO; }  
                completion:NULL];  
编辑:仍在解决问题,希望有人提出建议

附加更新

找出了以下内容在iPhone中不起作用的原因:

[UIView beginAnimations:nil context:nil];  
[UIView setAnimationDuration:1.0];  
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainView cache:YES];  

passageTextView.hidden = YES;  
notesTextView.hidden = NO;  

[UIView commitAnimations];
我忽略了在Interface Builder中将视图连接到mainView。几个小时的调试,我刚才想检查一下


但是,我仍然不知道为什么动画块不适用于iPhone或iPad。我尝试了几种方法,但即使“显示/隐藏”工作正常,我也没有得到任何动画。

我认为您使用了错误的动画选项

将第二个动画选项替换为
uiviewmanimationoptionTransitionFlipfromleft
(请注意
动画
转换之间的
选项


我相信
uiviewmanimationtransitionFlipfromleft
(这是您代码中的内容)是
uiviewmanimationtransition
而不是
uiviewmanimationoptions
我认为您使用了错误的动画选项

将第二个动画选项替换为
uiviewmanimationoptionTransitionFlipfromleft
(请注意
动画
转换之间的
选项


我相信
uiviewmanimationtransitionFlipfromleft
(这是您代码中的内容)是
uiviewmanimationtransition
而不是
uiviewmanimationoptions

我已经考虑过了,但苹果的动画视图编程指南部分有一个例子,它使用UIViewAnimationOptionTransitionFlipFromRight作为UIViewAnimationOption的选项。在这种情况下,他们使用transitionFromView:toView:制作动画,但我也尝试过这种方法,但没有成功。但您是否真的尝试过按照我的建议将
UIViewAnimationTransitionFromLeft
替换为
UIViewAnimationOptionTransitionFromLeft
?我这样问是因为(a)我认为它会起作用,(b)他们决定使用不同的数字。UIViewAnimationTransitionFlipFromLeft解析为1,而UIViewAnimationOptionTransitionFlipFromLeft解析为1。啊,您是正确的。我没有注意到您原始评论中的区别-它们是不同的值,并更改为UIViewAnimationOptionTransitionFlipFromLeft修复了它。没有问题。很高兴能帮上忙,谢谢!你节省了我在这上面花更多的时间=)”(&!问题。我花了2个多小时寻找解决方案……我在阅读文档时应该更加小心。我已经考虑过了,但是苹果的动画视图编程指南部分有一个例子,它使用UIViewAnimationOption TransitionFlipFromRight作为UIViewAnimationOption的选项。在这种情况下,它们使用transitionFromView:toView:对于动画,我也尝试过这种方法,但没有成功。但是你是否真的尝试过按照我的建议,用
uiviewmanimationoptiontransitionflipfromfloft
替换
uiviewmanimationoptiontransitionflipfromfloft
它们解析为不同的数字。UIViewAnimationTransitionFlipFromLeft解析为1,而UIViewAnimationOptionTransitionFlipFromLeft解析为1。啊,你是对的。我没有注意到你原始评论中的区别-它们是不同的值,并改为UIViewAnimationOptionTransitionFlipFromLeft修复了它。没问题。很高兴为您提供帮助。谢谢!您为我节省了更多的时间(=)”(&!问题。正在搜索2个多小时的解决方案…我在阅读文档时应该更加小心。