2012年1月10日 星期二

Xcode 4.2 - iOS SDK Storyboard學習心得分享(一)- Modal View Controller Transition

Xcode 4.2出來到現在已有一段時間了,這一版有一個很特別的功能就是Storyboard,他可以方便讓UI設計者在這個Storybaord上拖拉UI的Layout,並可在各View之間建立關係,也可以直接在上面設定各View之間的過場動畫,有了這個功能,將更有利於UI設計人員來使用。



先來介紹如何做出有Storyboard的Project:

1.從選單中選取File -> New -> New Project。

2.在這裡,我們先選擇最簡單的Single View Application,選好點選右下方的Next。

3.輸入Product Name,要用Storyboard的,記得要勾選Storyboard,選好點選右下方的Next。
4.選擇你要存放的路徑,選好點選右下方的Create。

5.在左方的Navigators欄,點選MainStoryboard.storyboard,即可在中間的主視窗看見Storyboard,由於選的是Single View Application,所以預設就有一個ViewController。

接下來可以開始在Storyboard上設計UI了:

1.先從右下角的控件列表中拖拉出ViewController和Button, Label等其他控件到Storyboard上,做成了Main View和Modal View兩個ViewController。

2.在Main View的To Modal View按鈕上按右鍵,會出現按鈕的關聯選單,將Storyboard Segues - Modal右側的小圈圈拖拉到Modal View上。

3.關閉關聯選單,可看到兩個ViewController之間已建立了Modal的關係,點選該關係鏈上的圓圈,右側的Utility欄會出現該Modal鏈的屬性設定,其中Transition欄即為過場動畫效果設定。

4.點選左上角的Run鈕即可執行結果。

執行結果影片如下,點選To Modal View按鈕,自動從下方推上來一個Modal View,此為Default Transition,到此為止,不需寫任何程式即可做到這個程度,至於其他基本的動畫效果,只要改一次Transition的設定,再Run一次就可以看到,有興趣的可以自行測試。



接下來要注意了,要如何按下To Main View按鈕回到Main View呢?
有一個很簡單的做法,就是再從To Main View按鈕,再拉回MainViewController,
雖然可以這麼做,但這不是好的做法,因為他會再從ModalViewController上方,再蓋上一層MainViewController,如果兩個按鈕一直重覆按下去,就會像堆疊一樣不斷堆高,記憶體也就會不知不覺地被耗盡。
較理想的做法還是遵循既有的ModalViewController的處理方式,只要在ModalViewController.m中所對應的IBAction中加一句:
[self dismissModalViewControllerAnimated:YES];
即可將ModalViewController移除,回到MainViewController,且動畫會自動從相反方向動作。


沒有留言:

張貼留言