我可以使用動畫製作視圖並僅更新其內容嗎? 我有4個視圖是相同的,所以不是創建4個xib,而是想更新視圖,但給用戶一個他已經切換視圖的印象。模擬推動導航控制器的更新視圖
所以我不是真的想要推一下,我只是想給用戶留下這樣的印象。 這可能嗎?
我可以使用動畫製作視圖並僅更新其內容嗎? 我有4個視圖是相同的,所以不是創建4個xib,而是想更新視圖,但給用戶一個他已經切換視圖的印象。模擬推動導航控制器的更新視圖
所以我不是真的想要推一下,我只是想給用戶留下這樣的印象。 這可能嗎?
我設置了一個簡單的項目,其中一個VC和按鈕位於中間以觸發動畫。這裏是綁在按鈕的代碼:
- (IBAction)pushNewView:(id)sender {
[UIView animateWithDuration:0.5 animations:^{
// this moves the view off screen to the left
self.view.frame = CGRectMake(-320, 0, 320, 480);
} completion:^(BOOL finished) {
// this pops the view over to the right side of the screen
self.view.frame = CGRectMake(320, 0, 320, 480);
[UIView animateWithDuration:0.5 animations:^{
// and this slides it in from the right
self.view.frame = CGRectMake(0, 0, 320, 480);
}];
}]; }
你可以玩的時間,使它看起來更有點「土」,和前面提到的與阿爾法玩。你可以在兩個動畫塊中的任何一箇中改變它。
就像一點額外的注意事項一樣,確保您更改自身的背景顏色.window與您的動畫製作視圖的背景顏色相同,否則會在屏幕顯示爲黑色(窗口的默認背景色)時顯示第二秒。將alpha設置爲0.3,然後返回1.0也很好。 – jmstone617 2012-02-06 16:24:03
能夠繪製一個視圖左側,同時動畫從右側的下一個觀點,這將是同一個推(假設未來和當前的看法已經子視圖)
UIView *nextView.frame = CGRectOffset(self.view.frame, self.view.frame.size.width, 0.0f);
[UIView animateWithDuration:0.3f animations:^{
currentView.frame = CGRectOffset(currentView.frame, -self.view.frame.size.width, 0.0f);
nextView.frame = CGRectOffset(nextView.frame, -self.view.frame.size.width, 0.0f);
}];
如果您嘗試更改視圖的alpha屬性,它可能會更好看
這個(imho)的最佳方法是在沒有動畫的情況下彈出當前視圖,然後立即再次推送相同的視圖。
myNavigationController = self.navigationController;
[myNavigationController popViewControllerAnimated:NO];
[myNavigationController pushViewController:myViewController animated:YES];
這是我用來給無限數量的觀點的影響,而在現實中只能使用/守信在內存中的部分技術。
當想要處理「後退」導航時,您將推送一個沒有動畫的新導航,然後用動畫彈出。
myNavigationController = self.navigationController;
[myNavigationController pushViewController:myViewController animated:NO];
[myNavigationController popViewControllerAnimated:YES];
所以你試過。你是否能夠在沒有動畫的情況下切換視圖? – 2012-02-06 15:59:26
仍未嘗試在沒有動畫的情況下切換視圖。這不應該是一個問題。我只需要調用我的控制器.text並給出新的內容。但是,如果沒有動畫,用戶對它不是非常敏銳,他改變了觀點。 – bruno 2012-02-06 16:05:18