我有一个加载包含视图的nib文件的方法:
[[NSBundle mainBundle] loadNibNamed:@"NewView" owner:self options:nil];
我想知道在视图加载时是否可以添加一个简单的过渡。我已经浏览了互联网,但我找不到任何东西。
答案 0 :(得分:3)
有很多方法可以呈现视图并为其设置动画。
您可以使用loadNibnamed创建创建:
How to load a UIView using a nib file created with Interface Builder
为视图设置动画的一种方法是以模态方式呈现它。这将从底部动画:
[[self navigationController] presentModalViewController:navController animated:YES];
这些帖子显示了使用modalTransitionStyle
更多地控制它的动画效果How can I change the animation style of a modal UIViewController?
iPhone - presentModalViewController with transition from right
另一种选择是创建一个视图,将其作为子视图添加到当前视图并为框架设置动画。如果您只是加载视图,请考虑使用UINib - 它已添加到iOS 4.0和缓存中。它是双性的。
UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil];
UIView *myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];
然后,您可以将其添加为subView。
如果要在视图中为子视图设置动画,请参阅本教程:
http://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial
具体做法是:
CGRect basketTopFrame = basketTop.frame;
basketTopFrame.origin.y = -basketTopFrame.size.height;
CGRect basketBottomFrame = basketBottom.frame;
basketBottomFrame.origin.y = self.view.bounds.size.height;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
basketTop.frame = basketTopFrame;
basketBottom.frame = basketBottomFrame;
[UIView commitAnimations];