如何Facebook的风格转变(How to facebook style transition)

2019-06-26 04:40发布

要实现类似的视图控制器过渡在Facebook和许多其他应用中使用,快照附着。 这将需要与CoreAnimation框架玩或者是提供工具包?

Answer 1:

你,除非你想导入第三部分框架,有人建议使用CoreAnimation,但它是使用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!
}

在界面生成器,或通过代码或者无论你是用来创建它们。 让他们重叠海誓山盟,让你只看到了冠捷,让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];
}

当然,你应该实现自己的UIView子类“脸谱视图”和“菜单视图”等,并在上面的例子中使用冠捷和bottomView。



Answer 2:

看看这个,它可能给你一个起点: https://github.com/Inferis/ViewDeck/



文章来源: How to facebook style transition