Xcode 4開發(fā)第一個iPhone程序 圖文實例(下)
Xcode 4開發(fā)第一個iPhone程序 圖文實例(下)是 本文介紹的內(nèi)容,接著Xcode 4開發(fā)第一個iPhone程序 圖文實例(上)繼續(xù)介紹。
項目開發(fā)
熟悉Xcode 4
經(jīng)過前期的準(zhǔn)備工作后,現(xiàn)在可以開始基于Xcode4進(jìn)行實際的項目開發(fā)。對于Xcode4,在iOS Dev Center中,找到“Xcode 4 User Guide”,這是一個專門針對Xcode 4的說明和使用指南,非常詳細(xì)。
在Xcode 4中,整合了原來專門用來編輯Mac或iOS項目界面的Interface Builder軟件,“Xcode 4 User Guide”中專門有一章“Designing User Interfaces in Xcode”來講述如何在Xcode 4中編輯界面。
創(chuàng)建新項目
啟動Xcode4后,首先會有一個歡迎窗口,通過它,點(diǎn)擊“Create a new Xcode project”,可以直接開始創(chuàng)建項目
當(dāng)然也可以通過菜單或者快捷方式來開始創(chuàng)建新項目
選擇新項目模板
為方便生成項目,Xcode4默認(rèn)提供了幾種項目模板:
Navigation-based Application: 該模板適用與需要界面導(dǎo)航的應(yīng)用,基于該模板生成的應(yīng)用程序,帶一個導(dǎo)航,顯示一個列表項
OpenGL ES Application: 該模板適用于基于OpenGL ES的應(yīng)用程序,例如游戲類程序?;谠撃0迳傻膽?yīng)用程序,帶一個用來輸出OpenGL ES場景的視圖和一個支持動畫的視圖
Splite View-based Application: 該模板適用于需要用到左右分欄視圖的iPad程序,基于該模板生成的應(yīng)用程序,提供了一個左右分欄的界面控件
Tab Bar Application: 該模板適用于適用采用標(biāo)簽頁的應(yīng)用程序,基于該模板生成的應(yīng)用程序,默認(rèn)帶有標(biāo)簽頁
Utility Application: 該模板適用與有一個主界面和一個信息頁的應(yīng)用,基于該模板生成的應(yīng)用程序,主界面上有一個信息按鈕,點(diǎn)擊后,有一個翻轉(zhuǎn)動畫,切換到另一個信息界面
View-based Application: 該模板適用于單一界面的應(yīng)用,基于該模板生成的應(yīng)用程序,只有一個空白界面視圖
Window-based Application: 該模板適用于空白的應(yīng)用程序,基于該模板生成的應(yīng)用程序,只有一個窗體,沒有任何視圖,需要手動添加
對于我們的Hello World項目來說,最適合的項目模板是“View-based Application”,我們只要基于它創(chuàng)建一個單一帶有空白視圖的應(yīng)用,然后再將UILabel拖到上面就可以實現(xiàn)基本功能。
項目基本選項
點(diǎn)擊下一步,進(jìn)入“Choose options for your new project”界面,在這里,可以選擇設(shè)置項目的基本選項,其中:
Product Name: 指產(chǎn)品名稱,在這里項目中,我們直接命名為“Hello World”
Company Identifier: 公司標(biāo)識符,一般命名規(guī)則為 “com.公司名”
Bundle Identifier: 指包標(biāo)識符,用于唯一標(biāo)識應(yīng)用程序,默認(rèn)會根據(jù)公司標(biāo)識符和產(chǎn)品名來組合生成
Device Family: 指該應(yīng)用支持的設(shè)備類型,共三個選項:iPhone、iPad、Universal(即iPhone、iPad通用)
Include Unite Tests: 是否包含單元測試代碼模板,如果勾選,Xcode會幫助生成單元測試代碼模板
選擇存儲路徑
點(diǎn)擊Next按鈕后,進(jìn)入選擇文件存儲路徑界面,在這里,可以選擇要存儲項目的目錄。
項目創(chuàng)建
完成點(diǎn)擊“Create”按鈕,項目創(chuàng)建完成,彈出項目窗口。
試運(yùn)行項目
經(jīng)過上面的步驟,我們已經(jīng)基于模板創(chuàng)建了一個項目,在開始開發(fā)前,我們可以嘗試先試運(yùn)行一下項目,看看效果。點(diǎn)擊Xcode左上角的“Run”按鈕,Xcode即開始對項目進(jìn)行編譯,編譯完成后,會彈出iPhone模擬器,在模擬器中運(yùn)行項目,當(dāng)然我們的項目現(xiàn)在運(yùn)行起來還只能看到一個空白的界面。
點(diǎn)Xcode左上角的“Stop”按鈕,停止運(yùn)行項目。
編輯界面文件
一般創(chuàng)建一個新項目,在項目中會包含一個或多個界面文件,這些界面文件一般稱之為“nib文件”,擴(kuò)展名為nib或xib。或者通過向?qū)?chuàng)建一個新的View Controller的時候,Xcode會包含一個對應(yīng)的nib文件,一個頭文件和一個實現(xiàn)文件。在我們剛剛以View-based Application為模板創(chuàng)建的Hello World項目中,“Hello_WorldViewController.xib”就是主界面的nib文件。
在Xcode左側(cè)選中“Hello_WorldViewController.xib”文件,并點(diǎn)擊工具欄的“Hide or show the Navigator”和“Hide or show the Utilities ”按鈕,隱藏左側(cè)Navigator區(qū)域,顯示Utility區(qū)域,這樣我們就可以開始在Xcode 4中來編輯界面。
添加Label到界面中
從對象庫中,找到我們所需要的Label控件對象,拖動到主界面中,即完成Label控件的添加
設(shè)置Label控件屬性
選中新添加的Label控件,點(diǎn)擊Inspector selector bar區(qū)域的“Show the Attributes inspector”按鈕,切換到屬性編輯界面,分別設(shè)置以下屬性:
Text: 輸入“Hello World”
Alignment: 選擇居中對齊
Font: 選擇“Helvetical Bold 26.0”
Text Color: 選擇紅色
Shadow: 選擇黑色(Black Color)
Shadow Offset: Horizontal和Vertical的值分別輸入1
設(shè)置Label控件的大小和位置
在上面的步驟中設(shè)置好Label的相關(guān)屬性后,發(fā)現(xiàn)文字特別小,而且顯示不完整,并非我們所選擇的字體大小,這是由于UILabel有一個屬性“adjustsFontSizeToFitWidth”,默認(rèn)值是“YES”,如果這個屬性的值為YES,并且Label的numberOfLines屬性值是1,它會根據(jù)Label的寬度來自動調(diào)整字體大小,通過Xcode新添加的Label,默認(rèn)寬度比較小,按照正常的26磅大小的字體,無法完整顯示,所以就字體大小就被自動調(diào)整了,導(dǎo)致顯示的和我們期望的不一樣。解決這個問題很簡單,就是我們重新設(shè)置一下Label的寬度,以讓其可以完整顯示文字。
選中新添加的Label控件,點(diǎn)擊Inspector selector bar區(qū)域的“Show the Size inspector”按鈕,切換到尺寸和位置設(shè)置界面,對寬度進(jìn)行調(diào)整,這里我們給Label設(shè)置一個足夠的寬度和高度:200x40,以保證字體不會被縮小。
接下來,就是要調(diào)整Label的位置,讓它顯示在屏幕的正中間。在Xcode中,用鼠標(biāo)拖動Label,拖動過程中Xcode有輔助線來幫助定位,很容易就可以找到正中心的位置。當(dāng)然也可以通過簡單的計算得到Label如果要顯示在正中心,坐標(biāo)應(yīng)該為:x = (屏幕寬度 - Label寬度) / 2 = (320 - 200) / 2 = 60; y = (屏幕高度 - 狀態(tài)欄高度 - Label高度) / 2 = (480 - 20 - 40) / 2 = 210;
對修改過的xib文件保存,運(yùn)行項目,看看效果
就這樣,我們已經(jīng)完成了第一步:在屏幕上顯示文字,設(shè)置字體和字體大小,讓文字顯示在屏幕正中心。下一步,我們要讓它支持旋轉(zhuǎn),并且旋轉(zhuǎn)后,文字還是顯示在屏幕正中。
支持設(shè)備旋轉(zhuǎn)
前面我們已經(jīng)學(xué)習(xí)了解過,要支持設(shè)備宣傳,要做如下工作:
重寫對應(yīng)的View Controller的“shouldAutorotateToInterfaceOrientation:”方法,在方法中申明支持的方向。也就是首先要重寫“Hello_WorldViewController.m”中的“shouldAutorotateToInterfaceOrientation:”方法
配置對應(yīng)的View Controller中的View的autoresizingMask屬性,以適應(yīng)因為界面旋轉(zhuǎn)導(dǎo)致的布局變化。也就是要設(shè)置好Label控件的autoresizingMask屬性。
還是在界面文件中,選中Label,在尺寸和位置設(shè)置界面,通過點(diǎn)擊Autosizing中的紅色線條,設(shè)置Label對上下左右四個方向以及寬度和高度都自動調(diào)整,這樣就可以保證在設(shè)備旋轉(zhuǎn)后,界面的寬度和高度發(fā)生改變后,控件對上下左右四個方向的位置以及長度和寬度也會隨著一起調(diào)整,由于已經(jīng)設(shè)置了文字在Label內(nèi)部是居中對齊的,就可以保證文字顯示在界面居中的位置。
點(diǎn)擊工具欄的“Hide or show the Navigator”和“Hide or show the Utilities ”按鈕,顯示左側(cè)Navigator區(qū)域,隱藏Utility區(qū)域,在左側(cè)Navigator區(qū)域,選中“Hello_WorldViewController.m”文件,找到“shouldAutorotateToInterfaceOrientation:”方法,對其進(jìn)行重寫,重寫后代碼如下
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- {
- // Return YES for supported orientations
- return YES;
- }
對所做的修改進(jìn)行保存,然后運(yùn)行項目,彈出模擬器,通過調(diào)用模擬器的設(shè)備旋轉(zhuǎn)菜單,讓iPhone模擬器變成橫屏,你將看到文字會自動調(diào)整位置,還是顯示在屏幕正中的位置。
至此,我們就實現(xiàn)了項目的全部需求。
小結(jié):Xcode 4開發(fā)第一個iPhone程序 圖文實例(下)的內(nèi)容介紹完了,通過Hello World這個簡單項目,我們學(xué)習(xí)了如何基于Xcode 4分析和開發(fā)iOS項目,學(xué)習(xí)了如何通過iOS Dev Center獲取需要的資料。最后希望本文對你有所幫助!
源碼下載:https://github.com/JimLiu/The-practice-of-iPhone-application-development/tree/master/Hello%20World