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];
}