想要实现类似于 facebook 和许多其他应用程序中使用的视图控制器转换,附加了快照。它需要使用 CoreAnimation 框架还是在工具包中可用?
问问题
1142 次
2 回答
4
你必须使用CoreAnimation,除非你想导入有人建议的第3部分框架,但是使用CoreAnimation非常简单,我建议你学习它,因为它非常强大。这是给你一个想法的最简单的方法。一旦掌握了它,您可以自己更好地构建它,以满足您的需求:
在您的视图控制器中有 2 个视图:
@interface yourViewController : UIViewController {
// The facebook view in the example, this will be the view that moves.
// Init this view with x=0 and let it cover the whole screen.
IBOutlet UIView *topView;
// The fb menu in the example
// Init this view so that it stays behind the topView.
IBOutlet UIView *bottomView;
BOOL menuVisible; // init to false in viewDidLoad!
}
在界面生成器中创建它们,或者通过代码或您习惯的方式创建它们。让它们相互重叠,这样你就只能看到 topView,而让 buttomView 留在它后面。
当用户按下按钮显示菜单时:
-(IBAction)menuButtonPressed:(id)sender {
// Set up animation with duration 0.5 seconds
[UIView beginAnimations:@"ToggleMenu" context:nil];
[UIView setAnimationDuration:0.5];
// Alter position of topView
CGRect frame = topView.frame;
if (menuVisible) {
frame.origin.x = 0;
menuVisible = NO;
} else {
frame.origin.x = 300; //Play with this value
menuVisible = YES;
}
topView.frame = frame;
// Run animation
[UIView commitAnimations];
}
当然,您应该为“facebook 视图”和“菜单视图”等实现自己的 UIView 子类,并在上面的示例中用于 topView 和 bottomView。
于 2012-07-11T14:03:28.873 回答
1
看看这个,它可能会给你一个起点: https ://github.com/Inferis/ViewDeck/
于 2012-07-11T13:30:23.157 回答