removeFromSuperviewでアニメーションする

2011/02/21

removeFromSuperview でアニメーションそのまま記述すると、 アニメーションが実行される前に、viewが取り除かれてしまう。

そこで、setAnimationDidStopSelector を利用してアニメーション実行後に処理をしてやることで実現できる。

- (IBAction)closeViewPressed:(id)sender {
    [UIView beginAnimations:@"transition2" context:NULL];
    [UIView setAnimationDuration:0.5f];
    sampleView.alpha = 0.85f;
    [UIView setAnimationDidStopSelector:@selector(closeLyricView)];
    lyricsSelectView.alpha = 0;
    [UIView commitAnimations];
}

- (void)closeView {
    [sampleView removeFromSuperview];   
}