babyfish0226 ![]() |
原始來源:Creating an iPhone Application 建立第一隻iPhone的應用程式(二) 建立應用程式的視窗 每一個應用程式都必須負責建立一個以內容填滿全螢幕 的視窗畫面。在iPhone作業系統中的圖形化應用程式是有別於核心及一些低階的系統的服務之外,而且彼此間並不會同時執行。當您的程式被啟動後,他會是 唯一執行中的項目。因此,您的應用程式將不會需要超過一個以上的視窗畫面,而這視窗畫面是由 UIWindows class 類別所建立的。當您改變您視窗中views的顯示時,這個情況之下您才會需要去改變您的使用者介面。 視窗提供了您使用者介面的表面繪圖能 力,但view物件則是提供實際的內容。一個view的物件是由UIView class類別所提供的實作,繪製出一些內容並提供這些內容的互動與回應。iPhone作業系統定義出基本的views用來呈現類似如表格、按鈕、文字欄 位以及其他互動控制項的類型。您能為您的視窗加入這些不同類型的views或者您能藉由UIView的子類別及實作一些自訂的繪圖與事件處理程式碼來定義 自訂的views。這裡的MoveMe範例程式則定義了兩個views - MyView以及 注意事項:在iPhone SDK的早期測試版本中,您必須透過自行撰寫程式碼的方式來建立您的視窗及views。但在iPhoneSDK的最終釋出版本您將能夠使用 Interface Builder程式來建立您的視窗及views。Interface Builder是一套視覺化的工具讓您能夠用來建立及編排視窗中的views,此外還能夠配置view的階層、設定每一個view的選項以及建立在您應用 程式中的views與其他物件的關聯性。因為他是一套視覺化的工具,因此您可以使用在視窗上拖曳元件的方式來執行所有的工作。而藉由這樣的互動介面,您將 能夠直接而且很快地看到所有可能的結果。
在一開始的執行期間,目標就是用最快的速度來建立一個應用程式的視窗並載入預設的內容。而建立視窗的工作則屬於此應用程式的主要委任目標。當應用程式到達一個被啟動並準備處理事件訊息的狀態時, 在 MoveMe 的程式中,委派的 1.建立一個頁面大小和螢幕相同的UIWindow的物件。
2.建立一個新的MyView類別的實例以配合背景view及填滿整個視窗頁面。
3.建立一個新的
PlacardView類別的實例使用在Welcome的按鈕,並在背景的view中進行置中。4.顯示這個視窗。
列表2 展示了MoveMe程式中的 列表 2 建立應用程式的視窗 - (void)applicationDidFinishLaunching:(UIApplication *)application
{ window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Set up content view to fill screen // Set up and show window 注意事項: 您還能夠使用 雖然前面的程式碼完成了建立視窗、建立他的背景view以及將此視窗進行顯示。但您卻未看到用來顯示Welcome按鈕的
列表 3 為內容view進行初始化 - initWithFrame:(CGRect)frame
{ if (self = [super initWithFrame:frame]) { self.backgroundColor = [UIColor darkGrayColor]; // Create the placard view -- it calculates its own frame based on its image 關於建立視窗及Views的詳細資訊,請見 iPhone OS Programming Guide 文章中關於 "Windows and Views" 章節。 <<續>> |
最新回應
9 小時 53 分鐘 前
2 日 14 小時 前
3 日 4 小時 前
3 日 4 小時 前
5 日 13 小時 前
1 週 3 日 前
1 週 4 日 前
2 週 7 小時 前
2 週 2 日 前
2 週 3 日 前