如何在像快门一样从上到下加载时为 UIView 设置动画?
Posted
技术标签:
【中文标题】如何在像快门一样从上到下加载时为 UIView 设置动画?【英文标题】:How to animate a UIView while loading from top to bottom like shutter? 【发布时间】:2012-08-06 05:15:46 【问题描述】:我正在尝试开发一个 iphone 应用程序。我知道如何在推入导航堆栈时从左向右滑动视图。但我的要求是在推入导航堆栈时从上到下为视图设置动画。那么该怎么做呢?
我正在搜索谷歌,但没有找到任何令人满意的结果。如果有人知道...请告诉我该怎么做。
info = [[InfoView alloc] initWithNibName:@"InfoView" bundle:nil];
[self.navigationController pushViewController:info animated:YES];
【问题讨论】:
【参考方案1】:您可以在将视图控制器推送到导航堆栈时尝试这样的操作:
SecondViewController *VC2 = [[SecondViewController alloc]init];
VC2.nameSupplied = self.nameField.text;
CGPoint mycenter = VC2.view.center;
CGPoint navCenter = self.navigationController.navigationBar.center;
VC2.view.center = CGPointMake(mycenter.x , mycenter.y - VC2.view.frame.size.height);
self.navigationController.navigationBar.center = CGPointMake(navCenter.x, navCenter.y - self.navigationController.navigationBar.frame.size.height);
[self.navigationController pushViewController:VC2 animated:NO];
[UIView animateWithDuration:0.5
delay:0
options: UIViewAnimationCurveEaseOut
animations:^
VC2.view.center = mycenter;
self.navigationController.navigationBar.center = navCenter;
completion:^(BOOL finished)
NSLog(@"Animation Done!");
];
但是,如果您只想在同一个视图控制器中显示另一个视图(从上到下移动),您可以像这样使用 UIView 的 transform 属性:
self.secondView.transform = CGAffineTransformMakeTranslation(0, secondView.frame.size.height);
【讨论】:
@user1523344:如果对您有帮助,您应该接受答案。以上是关于如何在像快门一样从上到下加载时为 UIView 设置动画?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7导航栏barTintColor - 能够让它从上到下淡化吗?