0

クラスには2つのメソッドがあり、それぞれにアニメーションがあります。私の質問は、これらのアニメーションを1つの配列などに格納し、beginAnimation:nameで参照できるかどうかです。はいの場合、どうすればこれを行うことができますか?

手伝ってくれてありがとう

-(void)hideMenu{
    [UIView beginAnimations:@"HIDE_MENU" context:nil];
    [UIView setAnimationDuration:0.38];
    [UIView setAnimationDelay:0.12];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [UIView setAnimationBeginsFromCurrentState:YES];
    self.frame = CGRectMake(0, -1 * self.frame.size.height, self.frame.size.width, self.frame.size.height);
    [UIView commitAnimations];
}

-(void)showMenu{
    [UIView beginAnimations:@"SHOW_MENU" context:nil];
    [UIView setAnimationDuration:0.38];
    [UIView setAnimationDelay:0.12];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [UIView setAnimationBeginsFromCurrentState:YES];
    self.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
    [UIView commitAnimations];
}

-(void)handleShowMenu:(NSNotification*)note{
    [self showMenu];
}

-(void)handleHideMenu:(NSNotification*)note{
    [self hideMenu];
}
4

1 に答える 1

1

UIViewアニメーションはオブジェクトではないため、保存できません。4.0で導入されたブロックアニメーションAPIを使用しても、アニメーションは静的クラスメソッドによって実行されるアクションにすぎません。最も近い方法は、ブロックを保存して再利用することです。または、実行していることを実行して、4.0より前のiOSバージョンとの互換性を維持することもできます。

アニメーションをオブジェクトとして本当に保存したい場合は、UIViewアニメーションをスキップして、CoreAnimationに少し下に移動する必要があります

于 2011-12-13T23:37:05.900 に答える