0

MainViewControllerに次のコードがあります。それはそれのための最高の場所ですか?同様の動作をする他の方法がいくつかあります。このタイプのコードは、UIの遷移と操作のためだけに別のクラスに属していますか?

-(void)slideView3P{
    [self.view bringSubviewToFront:_view3P];
    if (view3PIsMinimized){
        view3PIsMinimized = NO;
        [UIView beginAnimations:@"animationOff" context:NULL]; 
        [UIView setAnimationDuration:0.5f];
        [_view3P setFrame:CGRectMake(_view3P.frame.origin.x, 7, _view3P.frame.size.width, 446)];
        [UIView commitAnimations];    
    }
    else {
        view3PIsMinimized = YES;
        [UIView beginAnimations:@"animationOff" context:NULL]; 
        [UIView setAnimationDuration:0.5f];
        [_view3P setFrame:CGRectMake(_view3P.frame.origin.x, 57, _view3P.frame.size.width, 46)];
        [UIView commitAnimations];
    }
}
4

2 に答える 2

2

私には、Helperというモデルを作成し、次のようなアニメーションのクラスメソッドを作成します。

+ (void)slideHoriWithPixel:(CGFloat) _pixel ForView:(UIView *) _view;

+ (void)slideVertWithPixel:(CGFloat) _pixel ForView:(UIView *) _view;

+ (void)popOutAnimationForView:(UIView *) _view; 

いくつかの単純なアニメーションと複雑なアニメーションがあります。

利点は次のとおりです。

  • これらのアニメーションをいつ再利用するかはわかりません。
  • 別のプロジェクトを実行する場合でも、このヘルパーモデルを新しいプロジェクトにインポートして戻すことができます。
  • サーバルプロジェクトを実行した後、このモデルは最終的に独自のアニメーションライブラリになる可能性があります。
于 2012-06-19T03:59:54.190 に答える
1

私のアプリケーションでは、通常、現在行っているように、トランジションをビューコントローラに配置します。ただし、トランジションを再利用する場合は、トランジションを別のクラスに配置して、トランジションが必要なさまざまなViewControllerにインポートできます。ただの注意:Appleはそれらを推奨していないので、私はbeginAnimations:context:andを使用しません。UIViewクラスリファレンスcommitAnimationsから取得:

ビューのアニメーション

このセクションのメソッドの使用は、iOS4以降では推奨されていません。代わりに、ブロックベースのアニメーションメソッドを使用してください。

+ beginAnimations:context:

+ commitAnimations

+ setAnimationStartDate:

+ setAnimationsEnabled:

+ setAnimationDelegate:

+ setAnimationWillStartSelector:

+ setAnimationDidStopSelector:

+ setAnimationDuration:

+ setAnimationDelay:

等...

お役に立てれば!

于 2012-06-19T03:30:10.267 に答える