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

より複雑なアニメーションを取得するには(より多くのセグメントをブースに入れたい場合)、CoreAnimationレイヤーに移動してキーフレームを定義する必要があります。それ以外の場合は、一連の埋め込みanimateWithDuration / Completesがあり、それぞれがバウンスの異なる部分を実行します)。ビューのすべての要素がサブビューである場合、ビューがアニメーション化されると、そのサブビューが続きます。

于 2011-05-02T21:10:59.717 に答える
1

バウンスするために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 に答える