2011-04-07 100 views
1

我想動畫我的視圖響應用戶操作看起來像pushviewcontroller的動畫。也就是說,我希望視圖在屏幕左側滑動以響應用戶操作。但是,我不想創建一個新的視圖,並使用pushviewcontroller將它推入堆棧。我想重複使用相同的視圖並重新加載數據,並且我希望重新加載的視圖與新的數據從右側滑入,並且在pushviewcontroller的動畫中。你會如何做到這一點?pushviewcontroller動畫沒有實際調用pushviewcontroller

感謝您的幫助!

回答

2

在你的viewController執行此操作。這會將整個視圖向右移動,然後在2秒後移回。您可能只想移動一個子視圖,以便擁有某種背景。

- (void)viewDidAppear:(BOOL)animated 
{ 
    [UIView animateWithDuration:1.2 
        animations:^{ 
         self.view.frame = CGRectMake(320, 0, 320, 480); 
        }]; 

    [self performSelector:@selector(slideBackView) withObject:nil afterDelay:2.0]; 
} 

- (void)slideBackView 
{ 
    [UIView animateWithDuration:1.2 
        animations:^{ 
         self.view.frame = CGRectMake(0, 0, 320, 480); 
        }]; 
} 
+0

謝謝!這幾乎是我想要的。我可以將視圖從屏幕上滑下來並重新開始。爲了模擬pushviewcontroller動畫,我將視圖向左滑動並再次從右側滑動。但是,在兩張幻燈片之間,背景是白色的,因爲它必須等到第一個視圖在第二個視圖可以滑入之前滑落。有什麼方法可以連接兩個視圖,因此沒有顯示白色背景,如pushviewcontroller動畫? – Paul 2011-04-07 20:38:49

+0

是的,只要做兩個視圖的動畫。不要使用self.view,而應使用動畫塊中的firstView.frame和secondView.frame。只需添加一些屬性並引用這些視圖即可。 – 2011-04-07 20:44:36

+0

好的謝謝!正如你所說,我已經能夠擺脫兩種觀點之間的空白。爲此,我一直在創建另一個視圖,並將其與原始視圖一起進行動畫處理。我使用addSubview放入第二個視圖。但是,這似乎將視圖加載到子視圖堆棧中。當我嘗試使用removeFromSuperview放棄第二個視圖時,第二個視圖的動畫不起作用,因爲它在動畫之前刪除了第二個視圖。我該如何照顧這件事?我應該使用addSubview以外的東西嗎?我應該在其他地方調用removeFromSuperview嗎? – Paul 2011-04-09 22:13:57

相關問題