十一章基于物聯網ios app應用開發實驗_第1頁
十一章基于物聯網ios app應用開發實驗_第2頁
十一章基于物聯網ios app應用開發實驗_第3頁
十一章基于物聯網ios app應用開發實驗_第4頁
十一章基于物聯網ios app應用開發實驗_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第十一 基于物聯網的第十一 基于物聯網的IOSAPP應用設計實 ios介 編寫iOS應用程序有何不 在Xcode中創建項 Xcode項目窗 Xcode跳轉 MVC方 第十一基于物聯網第十一基于物聯網的iosAPP應用設計 ios11.1.1必要開始編寫iOS應用程序之前,需要做一些準備工作。初學者需要一臺安裝了MountainLion(OSX10.8)Mavericks(OSX10.9)Intel架構的Macintosh計算機。任何最近上市的基于Intel架構的Macintosh計算機iOSiOSLoginAppleLoginAppleIDApple就點擊Joinnow創建一個ID,然后再登錄。登錄之后就進入了iOS開發中心的進行iOS應用開發。iOS開發中最重要的工具是Xcode,它是蘋果的集成開發環境(IDE)Xcode提供了一些實用工具,用于創建和調試源代碼、編譯應用程序,以及對應用程序進行性能調優。可以從MacAppStore下載Xcode(可以MacAppleAppStore)SDKXcode版本的不斷更XcodeiOSSDKMacAppStore中了,同時也會在開發者網站上提供預覽版供開發者下載。總之,如果想下載Xcode和iOSSDK的最新版本(非beta版),應該使用MacAppStore。本書面向最新版SDK。在一些地方,我們會使用iOS7中引入的新函數或方法,它們可能與舊版SDK不兼容。當然,出現這些情況時我們會特別指出。請從或者本書論壇上下載最新的源代碼①SDK發布時,我們會 開發者XcodeMac創建并運行iPhone和iPad應用。這個模擬器對于學習編寫iOS程序極其有用。SDKiPhoneiOSAppStore99美元/AppStoreiOS設299美元//programs/ios(標準版計劃)/programs/ios(標準版計劃)iOS所支持的始終聯網的移動設備(iPhone),iOSMacMac售程序)iPodtouchWi-FiiPad程序可能會在共享網絡中降低性能。開發iOS應用似乎有很高的門檻,但是蘋果99VisualStudio(IDE)iPhoneiPodtouchiPadiOS模擬器進行測試,但并非所有程序都是如此。即便是那些可以在模擬器上運行11.2iOS應用程序有何如果從未使用Cocoa11.2iOS應用程序有何如果從未使用Cocoa(或者它的前輩NeXTSTEP和OpenStep)寫過程序,你CocoaTouch(iOS應用程序的應用程序框架)比較新奇。它與其他常用應用程序框架(如用于構建.NET或Java應用程序的框架)之間存在CocoaTouchCocoaNeXTSTEPiOSSDKMacOSXCocoa中原樣移植過來的。即便是那些不同的類,也遵循相同的基本原則和相似的設計模式。但是,Cocoa和CocoaTouch之間還是有一些不同的。無論你的知識背景如何,都需要時刻牢記iOS11.2.1只能同時運行一個在iOS中,任意時刻只能有一個應用處于活動狀態并顯示在屏幕上。從iOS開始,用戶按下Home鍵后,應用程序可以在后臺繼續運行,但這也只限于少數CPUiOS11.2.2只有一個iOSiOS設備屏幕的大小,是固定11.2.3有限的訪問iOS嚴格限制了應用程序的訪問權限。iOSiOS11.2.4有限的iOS嚴格限制了應用程序的訪問權限。iOSiOS11.2.4有限的響應iOSHome鍵查看最近使用的應用列表。如果用戶按HomeiOS返回主屏幕,應用必須快速保存一切內容并退出。如果沒有在5秒之內保存必要11.2.5有限的屏幕iPhoneiPhoneiPhoneiPhoneiPhone像素×480像素×960iPhoneiPhone4640×1136像素。像素數量有了極大的提高,但是屏幕的顯示空間卻沒有大的變化,iPhone所能提iPad1024像素×768大。下面來做一個有趣的對比,寫作本書時,蘋果最便宜的iMac的分辨率是1920像素×1080大。下面來做一個有趣的對比,寫作本書時,蘋果最便宜的iMac的分辨率是1920像素×1080像素,最便宜的筆記本電腦(11MacBookAir)的分辨率1366像素×76827LEDCinemaDisplay則支持高達2560像素×1440像素的超高分辨率。請注意,對于iPad而言,如果不出意外的話,往后的iPad機型(iPad2以后的全尺寸iPad以及iPadMini屏幕的iPhone一樣,這塊2048像素×1536像素的屏幕的實際尺寸跟舊屏幕一11.2.6有限的系統512MB16GBiOS48KBiOS目前上市的iOS設備的物理內存要么是512MB(iPhone4S、iPad2、一代iPadmini、iPodtouch5),要么是1024MB(iPhone5c、iPhone5S、iPadAir、iPadminiRetina),而且以后還會不斷加大。很大一部分內存被用于屏幕緩沖區和可能會更少,尤其是現在其他的應用可以在后臺運行了)iOS存時,卻還考慮另一個因素。現代的計算機操作系統(比如OSX)會將未使用的用內存時,它仍然可以正常運行。但是,iOS并不會將易失性內存(數據)iOS設備中未使CocoaTouch11.2.7不支持垃11.2.7不支持垃圾之前提過,CocoaTouch使用的是Objective-C,但是iOS卻并不支持一個Objective-C早在本世紀初就已經有的關鍵特性:垃圾回收。是的,CocoaTouchiOS編寫程序時需要手動管理內存,許多剛剛接觸這個平臺iOSObjective-CObjective-C對象占用內存的問題。MacOSX10.8ARC就成為了針對ARC11.3,怒。因此,本書也以“Hello,World!Xcode創建一iOS11.3,怒。因此,本書也以“Hello,World!Xcode創建一iOS應用,在模擬設備屏幕上顯示文本“HelloWorld!”。我們將討論使用XcodeiOSiOSiOS11.3.1Xcode中創建項XcodeiOSSDK()下載本書的項目歸檔文件。還可以順便看一下本書的論壇(/)。本書的論壇是討論iOS開發的好地02-HelloWorld前,需要啟動XcodeMacStoreXcodeXcodeMac/ApplicationsXcode如果你很熟悉以前版本的Xcode,但是還沒用過Xcode5,就會發現有很多變化(大多是變得比舊版更好了)Xcode2-1ShowthiswindowShowthiswindowwhenMaciPhoneiPadiPodtouch等設備,么第一次啟動Xcode時可能會看到一個對話框,詢問你是否要使用該設備進行開發。就目前的學習來說,點擊Ignore(忽略)按鈕就可以了。否則就會顯示Organizer窗口即可。如果已經加入了付費的iOS開發者計劃(iOSDeveloperProgram),iOS設備要創建新項目,可以選擇File?New?Project...(或者按下iOSOSXiOS用,所以選擇iOS部分的Application用,所以選擇iOS部分的Application(應用)類別,以顯示iOS應用模板。圖2-2右上方面板中的每一個圖標都表示一個獨立的項目模板,這些模板可以用作構iOSSingleViewApplication(單視圖應用)iPhoneiPad應用界面.SingleView圖標(2-2示),然后單擊Next按鈕,就會看到項目選項表單,如圖2-3所示。在這個表ProductName(產品名稱)CompanyIdentifier(公司標識)。Xcode會將這些內容結合起來,為應用生成一個唯一的BundleIdentifier(包標識符)OrganizationName(組織名稱)Xcode會自動在你創建的每一個源代碼文件中以這個名稱插入版權聲明。把ProductName設置為HelloWorld,組織名稱為Apress,然后在CompanyIdentifier字段填寫com.apress,如圖2-3所示。等你注冊了開發者計劃并且了解授權文件(provisioningprofile)ClassPrefix(類名前綴),Xcode為我們創建的所有類的類名前面。這么做是為了避免與蘋果(使用兩個字符的前綴)ClassPrefix(類名前綴),Xcode為我們創建的所有類的類名前面。這么做是為了避免與蘋果(使用兩個字符的前綴)Objective-CBIDBIDBeginningiOSDevelopment如,可能有很多類會被命名為MyViewController,然而被命名為BIDMyViewController的類就很少了,這就大大降低了命名沖突的可能性。Devices(即設備類別)XcodeiPhoneiPodtouchiPad,或是能夠在所有iOS設備上運行的通用應用。在設備類別中選擇iPhone(如果它還沒有被選的屏幕尺寸相同)iPhoneiPodtouch(iPadFinderXcodeCreateCreatelocalFinderXcodeCreateCreatelocalgitrepositoryforthisproject(倉庫)GitXcodeGitGit(SourceControlManagementSCM)XcodegitCreate11.3.2Xcode項目窗Xcode2-5iOSXcode2-5iOSXcode5Xcode3.xXcode4.x1.工具Xcode項目窗口的頂部區域是工具欄(2-6)(scheme)工具欄中間的大方框是活動視圖(activityview)工具欄中間的大方框是活動視圖(activityview)輔助編輯器(assistanteditor)文件。可以手動指定每個面板的內容,也可以讓Xcode自動判斷進而顯示與Objective-C類的實現文件(.m文件),Xcode就會自動在右側面板中顯示這個類的頭文件(.h文件)Xcode版本編輯器(versioneditor)Time類似的對比視圖,這個對比視圖可以跟Subversion和git等版本控制系統協同工2.導航2.導航導航視圖開關把它隱藏的話,請再次將其顯示出來。導航視圖共提供了8個面項目導航面板(projectnavigator):這個面板列出了項目用到的所有文件,如圖2-7所示。可以把任何想要的內容引用放在這里,從源代碼文件到圖片文件、數據模型、屬性列表文件(plist文件,2.1.2節會介紹),甚至是其以編輯(Xcode知道如何編輯這種文件)符號導航面板(symbol符號導航面板(symbolnavigator):工作區中定義的符號(symbol)2-8所示。從根本上說,符號就是那些編Objective-C搜索導航面板(Findnavigator搜索導航面板(Findnavigator):使用這個導航面板可以對工作區中的所有文件執行搜索,如圖2-9所示。面板頂部有多層下拉菜單,Find(查詢)功能也Replace(替換)功能,此外還可以對輸入的文本采用不同的搜索方式。測試導航面板(Testnavigator):測試導航面板(Testnavigator):Xcode果(2-11所示)調試導航面板(debugnavigator)2-12Xcode5UserGuide文檔的(stackframe)(stackframe)面板(breakpointnavigator):可以在斷點導航面板中查看已設置的所有斷點,如圖2-13所示。顧名思義,斷點會指向導致應用停止運行(或者跳出)的代碼部11.3.3Xcode跳轉在編輯器的頂部,你會找到一個叫作跳轉欄2-15可顯示的子菜單包括最近的文件(RecentFiles)、未保存的文件(UnsavedFiles)、關聯文件(Counterparts)、父類(Superclasses可顯示的子菜單包括最近的文件(RecentFiles)、未保存的文件(UnsavedFiles)、關聯文件(Counterparts)、父類(Superclasses)、子類(Subclasses)、兄弟類(Siblings)、類別(Categories)2-15BIDAppDelegate.m,Xcode511.3.4實用工具Xcode11.3.5界面構Xcode的早期版本包含一個被稱為界面構建器(11.3.5界面構Xcode的早期版本包含一個被稱為界面構建器(InterfaceBuilder)的界面設XcodeXcode11.3.6Xcode4(compiler)和底層調試器(low-leveldebugger)過去幾年蘋果一直使用GCC(GNUCCompiler)作為底層編譯器。不過最近LLVM(LowLevelVirtualMachine,底層虛擬機)LLVMGCC快。除了代碼生成速度快之外,LLVM還知道更多與代碼相關的信息,所以它能生成更智能、更精確的錯誤信息和警告。Xcode對LLVM也有很好的集成,后者為前者注入了強大的能量。Xcode名稱拼寫錯誤、括號匹配錯誤、分號遺漏等問題。此外,LLVM還提供了一個復雜的靜態分析器(staticanalyzer),它可以掃描你的代碼以查找各種潛在問題,Objective-CLLVM11.3.7深入研究XcodeHelloWorld8個導航面板圖標(位于工作區左側)中最左邊的那個圖標(command+1command+88command+1command+88command+1面板,command+2對應符號導航面板,以此類推,command+8對應日志導航面板。項目導航面板中的第一個條目就是項目名,本例為HelloWorld。這個條目表示整個項目,可以做些與項目相關的配置。單擊這個條目,就可以在Xcode的編2-7HelloWorld下一些子文件夾(Xcode中稱為組)SupportingFiles:HelloWorld文件夾內的某個文件夾,包含了項目中必需的Objective-CSupportingFiles文件夾上花費太多時間。創建一個新的iPhone應用項目后,這個文件夾就會包含4個HelloWorld-Info.plist:這個文件包含應用的件。事實上,最好不要碰這個文件,除非你真的知道自己在做什么。代表precompiledheader,意思是預編譯頭文件)。通常,這個文件中包含的頭Xcode代表precompiledheader,意思是預編譯頭文件)。通常,這個文件中包含的頭Xcode間(BuildRun可以對項目進行編譯)XcodeHelloWorld文SupportingFiles文件夾,里面是構建并運行單元測FrameworksFrameworks7Products:這個文件夾包含構建項目時生成的應用。展開Products文件夾,HelloWorld.app的文件,這就是這個項目創建出來的應用。它HelloWorldTests.xctest的文件,它表示測試代碼。這些文件都被稱為構建目(buildtarget)。由于我們還沒有構建這個應用,所以它們都顯Xcode注意:導航面板區域中的“文件夾”并不一定與Mac文件系統上的文件夾一一對應。它們只是Xcode中的邏輯分組,用于對所有的東西進行組織,以便在應至可以把它們放到項目文件夾外部。XcodeXcodeClassesXcodeClasses11.3.8界面構建器在項目窗口的項目導航面板中展開HelloWorld組(如果尚未展開),然后選擇Main.storyboard文件。然后這個文件就會在編輯器面板中打開(參見圖2-16)iPhone屏幕,可以在這個背景上編輯界面。這就是Xcode的界面構建器(有時被稱為IB),可以在這里設計應用的用戶界面。界面構建器歷史悠久,它于1988年面世,曾用于開發NeXTSTEP、OpenStep、MacOSX應用,現在也用于iPhone和iPad等iOS設備。之前已經提到過,界面構建器過去是一個獨立的應用(Xcode時會自動安裝界面構建器),XcodeXcode文件文件格界面構建器支持不同的文件類型:最初的版本使用擴展名為nib的二進制格xibXML的衍生格式。兩者包含了完全一樣的文檔內容,但xib格式的版本卻是基于文本格式的,這樣做有很多優勢,尤其是在你使用版本控制系統的時候。注意iOS項目模板全都默認使用.xib擴展名,但是在最初的20年里,所有的界面構建器文件都使用.nib擴展名,結果就是大部分開發者都把界面構建器文件稱為“nib文件”。不管文件實際使用的是.xib擴展名還是.nib擴展名,都被稱為“nib文件”。事實上,蘋果公司仍然在其文檔中使用“nib”和“nib文件”這兩個術語。一個nib文件可以包含任意數量的對象。但iOSnib文件負責包含一個視圖(一般都是全屏視圖)以及nibiOS最近幾年,界面構建器開始支持另一種文件類型,即分鏡(storyboard)將分鏡想像成一個“nib文件”(meta-nibfile),nib將分鏡想像成一個“nib文件”(meta-nibfile),nib文件不同,分鏡不會一次加載所有的內容,而是在你需要加載某視圖和控nib文件我們都會使用到。在當前的示例中,Xcode為我們創建了一個分鏡,所以我們先來看看它的用法。iOS一樣。Main.storyboard文件會在應用啟動時自動進行加載(nibiPhone屏幕尺寸(雖然也可能是其他尺寸)ViewController(視圖控制器)FirstResponder(第一響應者)。目前請先忽略掉FirstResponder示分鏡的所有內容,并由相關的場景(scene)作為容器來進行劃分。在本示例中只有一個場景,它的名稱是ViewControllerScene。你會看到它包含了一個名稱為View示分鏡的所有內容,并由相關的場景(scene)作為容器來進行劃分。在本示例中只有一個場景,它的名稱是ViewControllerScene。你會看到它包含了一個名稱為ViewControllerView的子項(還有其他一ViewUIViewUIView戶界面元素(包括按鈕、文本框、標簽等)都繼承自UIView。但是,本書使用的術語視圖(view)UIViewView圖標,Xcode會自動對我們之前所說的iPhone尺寸屏幕的矩形進行高亮。在這2-17所示。如果沒有看到這個實用工具視圖,可以單擊工具欄上三個View按鈕中最右邊的那個,選擇View?Utilities?ShowUtilities,或者按下option+command+0實用工具視圖的下半部分稱為庫面板(librarypane),或者簡稱為庫。庫是可重用對象的集合,可以在自己的程序中使用它們。庫面板頂部工具欄中的4實用工具視圖的下半部分稱為庫面板(librarypane),或者簡稱為庫。庫是可重用對象的集合,可以在自己的程序中使用它們。庫面板頂部工具欄中的44文件模板庫(filetemplatelibrary):這部分包含一些文件模板,向項目中添加Objective-C類,就可以從文件模板庫中拖出一個Objective-C類文件。代碼片段庫(codesnippetlibrary):這部分包含一些精選的代碼片段,可以直Objective-C的快速枚舉語法?沒關系,就從iOS界面的任何對象。本書的示例程序會大量使用對象注意對象庫中的對象主要來自于iOS的UIKit框架,這個框架中包含的對象可UIKit注意對象庫中的對象主要來自于iOS的UIKit框架,這個框架中包含的對象可UIKitCocoaTouchAppKitCocoa在很多明顯的不同。不過,NSStringNSArray等屬于Foundation框架的類,是Cocoa和CocoaTouch共有的。注意庫面板底部的搜索框。想找一個按鈕控件?那就在搜索框里輸入button,這時庫會只顯示名字中含有“button”的項。搜索現在試著使用界面構建器。單擊庫頂部的對象庫圖標(看起來像個立方體)TableViewcontrol+option+command+3在庫中找到Label。它大約位于列表的頂部。然后,把標簽控件拖放到之前介紹過的視圖中。(dock中單擊一下View圖標。)當把光標移到視圖上面時,光標就會變成一個綠色的加號指示符(Finder中它表示“我正在復制某些內容”)2-18正在編輯的視圖中,就能將其作為子視圖添加到主視圖(View的視圖)LabelUILabel簽,鍵入文本LabelUILabel簽,鍵入文本,File?Save(command+S)iOSiOS選項。在它下面有一整段標題為iOSSimulator的列表,里面列出了你可以在iOS模擬器中使用的所有型號的設備。選擇iPhoneRetina(4inch),這樣我們的應iPhone5的配置運行了。如果參與了蘋果公司的付費iOSiPhoneProduct?Run(command+R)2-19Product?Run(command+R)2-19Mac與上面講的有所不同。總而言之,如果想要在iPhoneiPadiPodtouch上構建并運行應用,就必須注冊蘋果公司的iOS開發者計劃并支付一些費用,然后Xcode做一些恰當的配置。加入開發者計劃后,蘋果公司會提供一些必要iPhoneiPad返回Xcode了。Xcode和模擬器是兩個互相獨立的應用。提示檢查完應用后,XcodeXcode屬性修XcodeHelloWorldXcodeHelloWorld2-option+command+1option+command+2RunObjective-CObjective-C對象(與在代碼中所做的一樣),11.4實現基本HelloWorld11.4實現基本HelloWorldCocoaTouch3-1所示。用戶按下一個按鈕時,標簽上的文本會相應地改變。這看上去是一個相當簡單的示例,但它展示了在iOSCocoaTouchGUI元素使用帶樣式的文本styledtext)11.4.1MVC在深入學習之前,先介紹一些基本理論。CocoaTouch設計者們采用MVC模式(Model-View-Controller)作為指導原則。在基于圖形用MVC可以非常合乎邏輯地對代碼進行拆分。目前,幾乎所有面向對象編程框架都在一定程度上借鑒了MVC的設計理念,但很少有像CocoaTouchMVCMVC3MVC3MVC3MVC3CocoaTouch(甚至創建)Objective-C序數據,也可以使用CoreData構建一個數據模型。本章的應用程序不會創建任義的類(NSObject子類),UIKit控制器類(UIViewController,稍后就會介紹)的子類。這么說吧,通過繼承CocoaTouchUIKitMVC原則的情況。在開發時牢記這個概念,就能夠創建出簡潔而易于維護的代11.4.2創建現在開始創建下一個Xcode項目。這個項目與上一章的項目使用相同的模板SingleViewApplication。從這個簡單的模板入手,更容易理解視圖和控制器之間的Xcode現在開始創建下一個Xcode項目。這個項目與上一章的項目使用相同的模板SingleViewApplication。從這個簡單的模板入手,更容易理解視圖和控制器之間的XcodeFile?New?NewProject...(shift+command+N)SingleViewApplicationNextProductNameButtonFunOrganizationNameIdentifierClassPrefix這三個字段的值默認與上一個項目相同(Apress、,DevicesiPhoneiPhone3-2點擊Next,XcodeCreategitrepository選項,可以根據自己的喜好來決11.4.3視圖控是用戶界面)XcodeButton是用戶界面)XcodeButtonFun分組應該已經展開了(3-3所示。Button4個源代碼文件(以.h或者.m結尾)storyboard文件和一個包xcassets4個源代碼文件實現了應用程序所需的兩個類:應用程序委托(applicationdelegate),以及用于這個應用僅有的一個視圖的視圖控制器。再次提醒一下,Xcode為所有的類都自動添加了之前指定的類名前綴(BID)XcodeBIDViewControllerBIDViewController部分則表明這個類是一個視圖控制器。點擊分組和文件(Groups&Files)面板中的BIDViewControllerUIViewControllerUIViewControllerUIKitXcode 輸出接口和操作方2Xcode 輸出接口和操作方2Xcode(outlet)nib了。本章會詳細介紹這個方法。另一方面,可以對nib文件中的界面對象進行設置,以觸發控制器類中的某些特殊方法。這些特殊方法稱為操作方法(actionmethod),或者簡稱為操作(action)。例如,可以在界面構建器中進行設置,Xcode定好,然后再使用界面構建器與將它們與相應的代碼關聯起來。Xcode的輔助視iOS輸出接Objective-CIBOutlet(classextension)這個例子聲明了一個名為myButton的輸出接口,可以讓它指向界面構建器中的任何按鈕。IBOutletObjective-C(classextension)這個例子聲明了一個名為myButton的輸出接口,可以讓它指向界面構建器中的任何按鈕。IBOutletObjective-C內置的關鍵字,僅僅是一個簡單的C是不是感到很困惑?對于編譯器來說,IBOutlet什么作用都沒有。它唯一的Xcodenibnib文件中的對象進行關聯的屬性,都必須使用IBOutlet關鍵字進行聲明。幸好,Xcode能夠自動創建輸出接口。隨著時間的推移,蘋果公司改變了輸出接口的聲明1關鍵字在CocoaNeXTSTEP2IBOutlet書中的代碼,把IBOutletGCCLLVM書中的代碼,把IBOutletGCCLLVM(LowLevelVirtualMachine,LLVMIBOutlet關鍵字放在屬性聲明中,所以我們遵循這一方式。希望你能了解這些歷史背景,以防遇到比較老的代碼(IBOutlet關鍵字出現在實例變量的聲明中)而迷惑不解。要了解Objective-C屬性的更多信息,可以閱讀由ScottKnasterWaqarMalikMarkDalrympleObjective-C基礎教程(2IntroductiontotheObjective-CProgrammingLanguage”(/2.操作IBAction的特殊方法,返回類型nib文件中的控件觸發。操作方法的聲明通常如IBActionvoid。返回類型為void的方法不返回任何值。而且,操作方法要么不接受任何參數,要么只接受一個參數(sender)。sendersender指向觸發該方法的對象。例如,如sender指向觸發該方法的對象。例如,如果用戶按下某個按鈕時觸發了這個操作法,那么sendersender Cocoa和senderiOS代碼(尤其在項目導航面板中單擊BIDViewController.m,打開這個實現文件。可以看viewDidLoaddidReceiveMemoryWarning等方法的樣板代碼,這是由創建項目時選擇的項目模板提供的。在UIViewController的子類中Xcode提供了這些基本的代碼片段,如果需要的話,Objective-C分類(category)聲明,可以在其中聲明方法和屬性,但是這些方法implementation塊中使用。本書后面會用到類擴展,但是現在并不需要,所以應該把這個空的@interface.@end塊刪除。完成之后,實Main.storyboard的界面構建器中打開應用程序的視圖(3-4Main.storyboard的界面構建器中打開應用程序的視圖(3-4)。你可能還記得上一章提到,3-1參數(之前的“操作方法”一節討論過)來區分這兩個按鈕。除了操作方Xcode1.添加按鈕和操作1.添加按鈕和操作方Xcodecontrol+option+command+3)打開對象庫。在對象庫的搜索框中輸入UIButton(4UIBuUIButton了),3-5把3-1引導線可以幫助你遵循iOSHumanInterfaceGuidelines(通常簡稱為HIG)。蘋果的3-1引導線可以幫助你遵循iOSHumanInterfaceGuidelines(通常簡稱為HIG)。蘋果的HIG可以幫助用戶更好地設計iPhone和iPad應用程序。HIG會告訴你應該包含了很多有用的信息,這是每個iOS開發者都應該了解的。可以在以下地址找雙擊新添加的按鈕,可以編輯按鈕標題,將其標題設為Left。現在該Xcode發揮作用了。選擇View?AssistantEditor?ShowAssistantEditor(或者按下option+command+return)7個按鈕,可以點擊最左邊一組按鈕中間的按鈕,顯示或者隱藏輔助編輯器(3-6)輔助編輯器會出現在編輯面板的右側,除非你特別指定輔助編輯器的位置(BIDViewController.h如果你的顯示器屏幕比較小(MacBookAir上的顯示器),utility視圖或項目導航面板,從而獲得足夠的空間,有效地使用輔助編輯器。可以通過項目導航窗口右上角的3個視圖按鈕方便地完成這個操作(參見圖3-6)。ViewControllerXcodeViewControllerXcodeBIDViewControllerUIViewControllerXcode在上面的跳轉欄中選擇BIDViewController.h文件。首先,點擊新添加的按鈕以選control鍵不放開,接著用鼠標把按鈕拖向輔助編輯器編輯器中的頭文件、File’sOwner圖標、編輯面板左側的任何其他圖標,甚至是編輯區域中的其他對象。如果把指針移動到@interface和@end關鍵字之間(參見圖3-7),就會彈出一個灰色的提示框,告訴你如果在這里放開鼠標的話可以插入編輯器中的頭文件、File’sOwner圖標、編輯面板左側的任何其他圖標,甚至是編輯區域中的其他對象。如果把指針移動到@interface和@end關鍵字之間(參見圖3-7),就會彈出一個灰色的提示框,告訴你如果在這里放開鼠標的話可以插入NSArray3-8ConnectionOutletActionXcode,我們要創建的是一個操3-9NamereturnreturnTabTypeUIButtonididObjective-CTypeididObjective-CTypeidid即可。在本例中,我們只會通過按鈕對象調用這個方法,所以應該將其改為UIButtonXcode和LLVM知道我們的意圖。現Type下面還有兩個字段,保留它們的默認值即可。在Event字段中指定什么時候調用這個方法。默認值TouchUpInside僅會在用戶的手指離開屏幕(且用戶的手指在離開屏Argumentssenderreturn就是XcodeBIDViewController.hBIDViewController.mXcodeXcodeBIDViewController.mXcodeXcodeMain.storyboard標題改為助編輯器。無所謂是當前是.h文件還是.mbuttonPressed:buttonPressed:ConnectAction的灰色提示框(3-10)。XcodebuttonPressed:方法。再說一遍,如果用這種方式把按鈕拖曳到實現文件(.m文件)中的操作方法,效果也是一樣的。也就是說,按住control鍵拖曳按鈕時,BIDViewController.hbuttonPressed方法聲明上,也可以拖向BIDViewController.m文件中的buttonPressed方法實現上。Xcode真是太智能2.添加標簽和輸2.添加標簽和輸出接LabelLabel(11)。把Label拖曳到用戶界面中,放置在兩個按鈕的上方。然后,調整標簽的標簽中的文本默認是左對齊的,但是我們希望它居中對齊。選擇View?UtilitiesShowAttributesInspector(option+command+4)打開屬性檢查器(3-12)Alignment中了標簽的文本),deletereturn鍵提交更改。這樣一來,標簽在未選中時就看不到了,不過不用擔心,BIDViewController.hBIDViewController.hcontrol3-13你將再次看到圖3-8所示的彈出窗口。我們要創建一個輸出接口,所以保留ConnectionOutlet。并且要為這個輸出接口指定一個描述性的名稱,以便在編寫代碼時能夠知道這個輸出接口的作用。在Na

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論