我正在UINavigationController中做一个自定义动画,它允许隐藏第一个视图中的选项卡。
它从一个带有虚拟键盘的文本视图开始并显示一个UITableViewController:
CATransition* transition = [CATransition animation];
transition.duration = 0.25f;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[window.layer addAnimation:transition forKey:kCATransition];
[navigationController setNavigationBarHidden:NO];
[navigationController pushViewController:preferencesViewController animated:NO];
但我的问题是,键盘在开始转换之前立即消失。
我想做一个push transition,让键盘和第一个视图一起移动。
这是可能的,而不必做第一个视图的截图?
谢谢你的帮助
好的,我找到了怎么做,我有这个代替[window.layer addAnimation:transition forKey:kCATransition];
:
for (UIWindow *someWindow in [[UIApplication sharedApplication] windows])
if (![someWindow respondsToSelector:@selector(screen)] || [someWindow screen] == [UIScreen mainScreen])
[someWindow.layer addAnimation:transition forKey:kCATransition];
现在我正试图得到相反的工作(返回到第一个视图)。我想让键盘和第一个视图一起翻译。但是,它只会在视图完成翻译后出现。
也许我必须在应用动画之前获得键盘的视图?
编辑:我让它工作,我改变了我的策略:我在rootviewcontroller和navigationcontroller之间进行转换。我不允许文本框辞职,并且在转换期间隐藏键盘视图。