2011-08-09 15 views
1

我正在寫一個應用程序,其中一個組件是一個清單屏幕。該清單有4或5個邏輯小節,我想顯示每個部分作爲一個單獨的視圖,用戶之間切換與前進和後退按鈕(最終與一個滑動手勢事件,但這是一個單獨的問題)之間的意見。在具有幾個離散子屏幕的UIViewController中使用動畫的正確方法是什麼?

目前,我有一個UIViewController類來管理清單邏輯,它從xib加載初始視圖。廈門國際銀行將包含所有的4或5次,和我目前可以相當容易地僅僅通過引用設立在UIViewController中所有的UIView對象,並呼籲

[self setView:viewNumberX]; 

該類中它們之間進行切換。但是,這只是突然切換視圖,並沒有很好的iOS風格的動畫。

我這樣做的原因是因爲我認爲適當的範例是有一個UIViewController管理一個或幾個不同的相關視圖 - 在這種情況下,我的一個UIViewController管理所有4或5個子視圖,因爲它們都是部件同一覈對清單的核對清單邏輯相同。我也注意到,有一個presentModalViewController:(UIViewController的*)動畫:BOOL方法UIViewControllers該讓我的動畫,我切換視圖的選項定義,但是這似乎要求我換我UIViews在4個或5個獨立UIViewControllers ,這對我沒有意義。個人觀點沒有自己的邏輯。是否有另一種獲得此功能的方法,或者我以錯誤的方式處理這個問題?

回答

0

如果你想擁有你可以刷卡通過,可以使用的UIScrollView與pagingEnabled同時避免使用手勢和動畫設置爲YES清單。使滾動視圖一樣寬的屏幕,讓它的contentSize財產寬屏幕的屏幕*號,然後將其中x是滾動視圖內的每個清單座標,其像填充+的PageNumber * 320(與PAGENUMBER是一個int,並開始0)。如果你選擇了這種方法,如果你需要更多的細節或示例代碼,我就在這裏。

+0

我一直在尋找到UIScrollViews,並做了一些使用它們一個樣機示例(基本上,我學習這個項目的iOS編程),我最終還是沒有進一步persue它的原因是因爲我發現它真的,真的很難在Interface Builder的UIScrollView中安排子視圖。基本上,任何可能已經出現過的初始畫面是不可能用鼠標,這有點違背了使用IB開始與目的來操縱。 – Tneuktippa

1

如果您對每個UIView都沒有UIViewController,可以使用beginAnimations:context:commitAnimations修復動畫位。基本上你使用它們像這樣,例如:

[UIView beginAnimations:@"animationName" context:nil]; 
[UIView setAnimationDuration:0.80]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight 
         forView:self.navigationController.view cache:NO]; 

...<change view>... 
[UIView commitAnimations]; 

其實,如果你的目標的iOS 4,您需要使用animateWithDuration:animations:,但概念是相同的。 Here你會發現一個代碼片段與後者做翻轉。

相關問題