次のアニメーションをブロックで動作させるにはどうすればよいですか?
(トランジション アニメーションの完了ハンドラーでキーボードを非表示にする必要があります)
- (void) showNewViewAnimatedSlideAscending:(BOOL)isAscending {
UIView * oldView = self.myView;
UIView * newView = self.myView;
UIView * superView = self.myView.superview;
[oldView removeFromSuperview];
[superView addSubview:newView];
// set up an animation for the transition between the views
CATransition *animation = [CATransition animation];
[animation setDuration:0.3];
[animation setType:kCATransitionPush];
if(isAscending) {
[animation setSubtype:kCATransitionFromRight];
} else {
[animation setSubtype:kCATransitionFromLeft];
}
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[superView layer] addAnimation:animation forKey:@"myTransitionAnimation"];
if(self.keyboardVisible) {
[self.view endEditing:YES];
}
}
ps; 私は知っています、私は同じビューを削除して表示しています。このビューは、このメソッドを呼び出す直前に新しいデータを受け取りました。どういうわけかビューが正しく表示され、「新しい」ビューに新しいデータのみが表示されます。