1

我在 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];

但我的问题是键盘在开始转换之前立即消失。

我想做一个推动转换,将键盘与第一个视图一起移动。

这是否可能无需对第一个视图进行截图?

谢谢你的帮助 :)

4

1 回答 1

0

好的,我找到了怎么做,我有这个而不是[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 之间进行了转换。我不允许文本字段辞职,并在过渡期间隐藏键盘视图。

于 2013-06-21T08:46:23.820 回答