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