0

我想这是非常基本的,但我想知道是否有一种简单的方法可以将整个 NIB 动画到屏幕上......来自右边。理想情况下,我希望它在停止后稍微反弹(即,如果 NIB 应该滚动到 X = 0 的位置,我想在回到 0 之前让它稍微负一些)。

这是我到目前为止所拥有的:

                         [UIView animateWithDuration:0.5
                                           delay:0
                                         options:UIViewAnimationOptionCurveEaseIn
                                      animations:^{


                                          TabsEdit *tEdit = [[TabsEdit alloc] initWithNibName:@"TabsEdit" bundle:nil];
                                          self.tabsEdit = tEdit;
                                          [self.view addSubview:tEdit.view];
                                          [tEdit release];



                                      }
                                      completion:^(BOOL finished){

                                      }

是否有任何简单的解决方案,或者我是否需要将 NIB 中的每个元素都设置为动画,然后添加我的小反弹效果?

对于如何有效实现这一目标的任何建议,我将不胜感激。

4

2 回答 2

1

要获得更复杂的动画(如果你想对 bouce 有更多的片段),你应该进入 CoreAnimation 层并定义关键帧。否则有一系列嵌入的 animateWithDuration/Completions,每个都执行不同的反弹部分)。如果一个视图的所有元素都是子视图,那么当视图动画时,它的子视图将跟随。

于 2011-05-02T21:10:59.717 回答
1

一个动作重复弹跳。

    [UIView beginAnimations:@"move" context:nil];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDuration:0.25];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    if(movingIn){
        view.frame = CGRectMake(0.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height);
    }else{
        view.frame = CGRectMake(320.0f, view.frame.origin.x, .view.frame.size.width, view.frame.size.height);
    }

    [UIView commitAnimations];
于 2011-05-02T22:26:09.217 回答