我的目標很簡單,我之前已經實現了這個目標,這就是爲什麼我要在這裏問我的問題。UIView animateWithDuration忽略持續時間
我想動畫子視圖。夠簡單。在動畫結束後,視圖正好在我想要的位置結束。唯一的問題是: 無論我做什麼動畫持續時間完全被忽略。它瞬間發生。現在
- (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];
}];
}
我已經嘗試了不同的框架和持續時間,看看是否有人在所有的動畫,它總是結束了,我需要它。只有瞬間......
編輯:
上面的代碼是被稱爲在被解僱的視圖控制器的委託,像這樣:
- (void)dismissSelf {
if (self.delegate && [self.delegate respondsToSelector:@selector(callToDismissScan)]) {
[self.delegate callToDismissScan];
}
}
這方法本身是由觸發通知。
我必須承認,在我不完全理解的兩個控制器之間的轉換過程中發生了一些事情。 (我非常想了解它們......)
仍然重現相同的問題。 –
動畫閉包正在調用,但持續時間總是被忽略。 –
檢查參數視圖是否爲零。新幀的起源已被設置爲self.view.frame.size.width,您看不到動畫結果。 – John