私の目標は簡単で、私はこれを以前に達成したので、ここで私の質問に頼っています。UIView animateWithDuration durationを無視します
私はサブビューをアニメーション化しようとしています。十分に簡単です。ビューは、アニメーションが終了した後の位置に正確に終わります。唯一の問題は: 私はアニメーションの時間を何でも完全に無視されます。それは即座に起こります。
- (void)callToDismissView:(UIView *)view {
[self.view addSubview:view];
[self dismissViewControllerAnimated:NO completion:nil];
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^(void){
CGRect frame = self.view.frame;
frame.origin.x = frame.size.width;
view.frame = frame;
} completion:^(BOOL finished){
[view removeFromSuperview];
}];
}
は、今私は、ビューがすべてでアニメーションされたかどうかを確認するために異なるフレームと期間を試してみましたし、私はそれをする必要がどこに常に終わります。だけ瞬時に...
EDIT:
上記のコードはそうのような却下ビューコントローラにデリゲートによって呼び出されている:
- (void)dismissSelf {
if (self.delegate && [self.delegate respondsToSelector:@selector(callToDismissScan)]) {
[self.delegate callToDismissScan];
}
}
そして、その方法自体は、通知によってトリガーされます。
私が完全に理解していない2つのコントローラ間の移行中に、いくつかのことが起こっていることを認めなければなりません。 (そして、私はそれらをよく理解したいと思っています...)
同じ問題が再現されます。 –
アニメーションクロージャが呼び出し中ですが、継続時間は常に無視されます。 –
チェックパラメータビューはnilであるかどうかを示します。新しいフレームの起点がself.view.frame.size.widthに設定されていると、アニメーションの結果を見ることができません。 – John