Chr*_*rts 1 uiview uiviewanimation ios
有一个令人费解的问题.我有一个通用的应用程序,在iPad和iPhone版本之间有很多共享代码.在nib中有不同的布局,但基本上是相同的视图和视图层次结构 - 一个UIView用作两个兄弟UITextViews的容器.
UIView的MAINVIEW儿童:
UITextView的passageTextView
的UITextView notesTextView
一个UITextView被隐藏,另一个可见.
以下是我的代码.注释掉的部分是我原来的动画尝试.这在iPad上可以正常工作,但在iPhone上却没有.使用文档中建议的方法,取消注释部分为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];
Run Code Online (Sandbox Code Playgroud)
编辑:仍然在解决这个问题,希望有人有一个建议.
其他更新
弄清楚为什么以下不适用于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];
Run Code Online (Sandbox Code Playgroud)
我忽略了将视图连接到Interface Builder中的mainView.几个小时的调试,我刚考虑检查.
但是,我仍然不知道为什么动画块不能用于iPhone或iPad.我已经尝试了几种方法,但即使显示/隐藏正在工作,我也没有得到任何动画.
我认为你使用的是错误的动画选项.
替换你的第二个动画选项UIViewAnimationOptionTransitionFlipFromLeft(注意Option之间Animation和Transition)
我相信UIViewAnimationTransitionFlipFromLeft(你的代码中有你的东西)UIViewAnimationTransition不是UIViewAnimationOptions.
| 归档时间: |
|
| 查看次数: |
6551 次 |
| 最近记录: |