gpt4 book ai didi

iphone - 用于推送 UIViewController 的自定义动画

转载 作者:行者123 更新时间:2023-12-03 18:20:20 25 4
gpt4 key购买 nike

我想在插入 View Controller 时显示自定义动画:我想实现类似“展开”动画的效果,这意味着新 View 从给定的矩形展开,比如说 [100,100 220,380] 在动画期间扩展到全屏。

有什么建议从哪里开始,分别有什么文档、教程、链接吗? :)

<小时/>

好吧。我可以使用以下代码制作展开动画:

if ([coming.view superview] == nil)   
[self.view addSubview:coming.view];
coming.view.frame = CGRectMake(160,160,0,0);
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[coming viewWillAppear:YES];
[going viewWillAppear:YES];
coming.view.frame = CGRectMake(0, 0, 320, 480);
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];

我的 View 已正确显示,但遗憾的是导航栏未更新。有没有办法手动执行此操作?

<小时/>

在示例代码中,调用了一个函数,该函数花费了 0.03 秒来更新 View 的转换。不幸的是,当推送 UIViewController 时,我无法调整 View 框架的大小......是吗?

最佳答案

我使用以下函数(添加到UINavigationController)来自定义推送动画:

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

我想你可以调整这段代码来完成你想要的任何动画。

关于iphone - 用于推送 UIViewController 的自定义动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869787/

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