要实现类似于Facebook和许多其他应用程序中使用的 View Controller 转换,请附加快照。它需要使用CoreAnimation框架还是可以在工具箱中使用?

最佳答案

除非要导入某人建议的第3部分框架,否则必须使用CoreAnimation,但是使用CoreAnimation非常简单,我建议您学习它,因为它非常强大。这是可能给您一个想法的最简单的方法。一旦掌握了它,就可以更好地构造它,以适合您的需求:

在您的 View Controller 中有2个 View :

@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 view”和“menu view”等实现自己的UIView子类,并在上面的示例中将其用于topView和bottomView。

关于ios - 如何进行Facebook样式转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11433660/

10-16 21:47