gpt4 book ai didi

objective-c - 使用自定义动画推送 UITableViewController 始终为 UINavigationItem Title 设置动画

转载 作者:可可西里 更新时间:2023-11-01 03:21:33 25 4
gpt4 key购买 nike

我使用以下代码作为 UINavigationController 的扩展来推送带有自定义动画的 View Controller :

@implementation UINavigationController (PushAnimation)

- (void)pushViewController:(UIViewController*)controller withTransition:(UIViewAnimationTransition)transition
{
[UIView beginAnimations:nil context:NULL];
[self pushViewController:controller animated:NO];
[UIView setAnimationDuration:1.0];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition:transition forView:self.view cache:YES];
[UIView commitAnimations];
}

@end

启用缓存后,在推送 UITableViewController 时出现奇怪的动画行为。推送 View 的标题在自定义动画完成后出现。使用过渡样式 UIViewAnimationTransitionNone,很明显标题本身是动画的。它从屏幕的左上角移动到 UINavigationBar 的中心。

在禁用缓存的情况下,由于速度原因,此动画不可见,但帧速率会显着下降。

如何防止标题动画化?

最佳答案

问题是您动画整个 View self.viewself.view 包含 View Controller 以及 UINavigationBar。因此,您可能必须获取 self.view 的所有 subview ,然后仅对属于您的 View Controller 的 view 进行动画处理。

关于objective-c - 使用自定义动画推送 UITableViewController 始终为 UINavigationItem Title 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com