0
我將首先解釋我已經看到了有關這種類型的功能的許多問題和答案,但我仍然有問題自己實現它。我正在使用ARC,並未使用自動佈局或故事板。我用代碼中的約束來定義我的佈局,所以我一直試圖實現我的動畫的方式有點不同。最後,這是一個iPad應用程序。使用幻燈片和滑出動畫爲子視圖
對於具體的問題,我有一個子視圖,它隱藏起來,但是當一個動作發生時出現。我希望這個子視圖使用隱藏的功能,但在隱藏功能出現之後和隱藏功能之前滑入和滑出。到目前爲止,我已經到達了一半,並且能夠讓視圖毫無問題地滑入。以下是完成此操作的代碼。
detailView.hidden = NO;
// Perform Animation - Slide In
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
animation.duration = kAnimationTimeout;
animation.removedOnCompletion = NO;
animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(800.0, 0.0, 1.0)];
[detailView.layer addAnimation:animation forKey:nil];
但是,我試圖讓視圖在隱藏之前滑出來,但我一直沒有成功。以下是我添加的嘗試完成此功能的代碼。
// Perform Animation - Slide Out
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
animation.duration = kAnimationTimeout;
animation.removedOnCompletion = NO;
animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-800.0, 0.0, 1.0)];
[detailView.layer addAnimation:animation forKey:nil];
detailView.hidden = YES;
我得到的結果是視圖簡單地消失,就像它被隱藏起來一樣。在添加其他動畫之前,是否需要刪除添加到視圖的一個動畫?或者我的CATransform3DMakeTranslation定義錯誤?