ios游戲畢業(yè)論文_第1頁
已閱讀1頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  屆 別 2016屆 </p><p>  學(xué) 號 201214240204 </p><p><b>  畢業(yè)設(shè)計(jì)</b></p><p>  基于iOS系統(tǒng)新聞資訊APP</p><p>  姓   名

2、 鄧小勇 </p><p>  系 別、 專 業(yè) 電子信息與電氣工程學(xué)院 </p><p>  電氣工程及其自動化 </p><p>  導(dǎo) 師 姓 名、職 稱 何湘艷 講師 </p><p>  完 成 時 間

3、 2016年5月 </p><p><b>  目錄</b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p><b>  第一章 緒論1</b></p><

4、p>  1.1 課題開發(fā)背景2</p><p>  1.2 新聞資訊app系統(tǒng)框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義3</p><p>  1.3 本系統(tǒng)預(yù)達(dá)到的目標(biāo)3</p><p>  第二章 新聞資訊app系統(tǒng)開發(fā)技術(shù)簡介4</p><p>  2.1 Objective-c簡介4</p><p>  2.1.1

5、 ios系統(tǒng)框架5</p><p>  2.1.2 iOS系統(tǒng)各個層次5</p><p>  2.1.3應(yīng)用程序框架6</p><p>  2.2 Xcode介紹9</p><p>  第三章 新聞資訊app技術(shù)與需求分析10</p><p>  3.1 新聞資訊app的可行性分析11</p>

6、<p>  3.1.1 使用Objective-C編程技術(shù)11</p><p>  3.1.2 Objective-C的三大特點(diǎn)(繼承,封裝,多態(tài)):11</p><p>  3.2社會因素和市場因素可行性12</p><p>  3.3 新聞資訊app需求分析13</p><p>  第四章 新聞資訊app系統(tǒng)實(shí)現(xiàn)16

7、</p><p>  4.1 初始框架的實(shí)現(xiàn)16</p><p>  4.1首頁功能模塊實(shí)現(xiàn)23</p><p>  4.3.國內(nèi)外模塊功能實(shí)現(xiàn)32</p><p>  4.4.地方資訊功能模塊36</p><p>  4.5.個人中心功能模塊實(shí)現(xiàn)39</p><p>  4.6.模塊

8、使用的主要技術(shù)41</p><p>  4.6.1 網(wǎng)絡(luò)請求的二次封裝:41</p><p>  5.6.2 單例模式45</p><p>  4.7.主要技術(shù)框架46</p><p><b>  總結(jié)46</b></p><p><b>  參考文獻(xiàn)47</b>

9、</p><p><b>  致謝48</b></p><p><b>  摘要</b></p><p>  新聞資訊是一種用于對游戲介紹,下載軟件。它涵蓋了各種游戲。它們不僅界面美觀,而且操作簡單,讓人第一眼看著就印象深刻。它還可以讓人們在無聊的時候觀看各種游戲視頻,它支持各種視頻格式。并且有著最新的游戲資訊,讓人第一

10、時間知道,既快捷又方便。</p><p>  本文主要介紹了iOS平臺以及基于該平臺新聞資訊app的系統(tǒng)的發(fā)展現(xiàn)狀與功能實(shí)現(xiàn)。本系統(tǒng)是一款基于iPhone平臺的資訊app。資源占用率小,運(yùn)行效率高,操作簡潔,擴(kuò)展能力強(qiáng)。本系統(tǒng)播放畫面流暢,具有聲效和圖效上的聽覺及視覺的享受。</p><p>  使用本app時您會覺得世界之大無奇不有的新聞,讓你了解世界各處的新聞 在使用app的同時能夠看

11、視頻,常用iPhone控件等技術(shù),模塊與模塊間低耦合,高內(nèi)聚,采用模塊化方法編程,維護(hù)性較高。</p><p><b>  關(guān)鍵詞 新聞資訊</b></p><p><b>  Abstract</b></p><p>  News and information is a kind of used for the gam

12、e, download the software.It covers all kinds of games.They not only beautiful interface, and simple operation, let a person at first glance looks impressive.It can also make people in bored watching all kinds of video ga

13、me, it supports a variety of video formats.And with the latest game information, let a person know the first time, quick and convenient.This article mainly introduced the iOS platform and based on this platform system de

14、velopment </p><p>  Key word:News and information</p><p><b>  第一章 緒論</b></p><p>  隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)和Internet的飛速發(fā)展,基于因特網(wǎng)的手機(jī)移動應(yīng)用已經(jīng)開始成為一種全新的功能需求,并且越來越受到人們的關(guān)注。由于移動應(yīng)用具有簡單性,隨時隨地性等諸多

15、特點(diǎn),因此它有著傳統(tǒng)計(jì)算機(jī)所無法比擬的優(yōu)點(diǎn)。這樣一來,手機(jī)移動應(yīng)用的開發(fā)工作就顯得尤為重要,然而手機(jī)即時新聞也隨之發(fā)展起來了,基本每個智能手機(jī)都會裝上一款新聞資訊類的app。</p><p>  第一章,介紹了課題的開發(fā)背景、課題開發(fā)的現(xiàn)實(shí)意義、新聞資訊的概念以及預(yù)期達(dá)到的目標(biāo)。 </p><p>  第二章,概略地介紹了開發(fā)音樂播放器多用到的各種技術(shù),比如新技術(shù)Objective-c,開

16、源框架的josn解析等。</p><p>  第三章,對新聞資訊app的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)功能、運(yùn)行環(huán)境等概要分析設(shè)計(jì)階段做工了大體介紹即需求分析。</p><p>  第四章,對系統(tǒng)總體流程設(shè)計(jì)、系統(tǒng)整體框架、后臺邏輯處理功能設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)作了簡要說明。</p><p>  第五章,具體介紹了系統(tǒng)各功能實(shí)現(xiàn)過程,如app界面的處理, 個人信息的處理等。<

17、;/p><p>  第六章,大體介紹了對本系統(tǒng)的測試工作,涵蓋了測試計(jì)劃、測試結(jié)果以及測試分析這三個方面的內(nèi)容。</p><p>  1.1 課題開發(fā)背景</p><p>  如今的移動應(yīng)用開發(fā)產(chǎn)業(yè)讓人眼花繚亂,主要的移動操作平臺有:iOS iPhoneOS 、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、

18、Flash/Flash Lite等。Android以其開放性,多任務(wù),大功能,畫面流暢,硬件設(shè)備優(yōu)良多樣等各種優(yōu)點(diǎn),占智能機(jī)一大部分;然而它也存在著很明顯的不足,如:兼容性差,各種機(jī)型的配置不一樣,以至于開發(fā)的時候出現(xiàn)各種版本。有些產(chǎn)品華而不實(shí),用戶體驗(yàn)差。Symbian主要基于C語言的應(yīng)用開發(fā),支持多線程運(yùn)行模式,但是開發(fā)代碼量過大給開發(fā)人員造成很大的不便,另外塞班版本之間兼容性差也是SymbianOS需要改進(jìn)的一個地方。就目前而言,

19、三大平臺 Android、Symbian、BlackBerry 的市場占有率也在逐漸下降,iOS呈現(xiàn)平穩(wěn)上升趨勢。</p><p>  1.App Store的支付模式成熟。不僅僅是商業(yè)模式的創(chuàng)新,更重要的是無法模仿,經(jīng)過長時間的運(yùn)營,App Store已經(jīng)形成完備的支付模式,被大部分用戶接受。</p><p>  2.iOS是用Objective-C開發(fā)。從全球的編程語言排行榜來看,雖然

20、,Objective-C只有蘋果公司一家使用,但是已經(jīng)排名第4,可見iOS開發(fā)的普及性和受歡迎程度,另外,基于C語言,運(yùn)行效率更高。</p><p>  3.蘋果iPhone以及所有蘋果的硬件軟件策略和控制讓蘋果在用戶體驗(yàn)和控制產(chǎn)品質(zhì)量方面占盡先機(jī),大部分iOS用戶能夠同時對他們手中的設(shè)備進(jìn)行更新,這會吸引更多用戶。</p><p>  4.iPhone在中國極受歡迎。中國的各大移動運(yùn)營商

21、都積極地與蘋果公司合作,各自推出適合中國人使用的手機(jī)套餐和應(yīng)用,比如中國聯(lián)通,中國電信等等,社會各界也對iPhone有很好的評價。</p><p>  1.2 新聞資訊app系統(tǒng)框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義</p><p>  隨著手機(jī)的更新?lián)Q代,功能的提升,人們已經(jīng)可以在手機(jī)上裝更多軟件了并且可以很流暢的運(yùn)行,現(xiàn)在中國有百分之60%的人在用智能手機(jī),人們用手機(jī)是為了更方便,消息傳遞快等,所以一

22、款好的新聞資訊app是不可缺少的,現(xiàn)在市面上好的新聞資訊app很多,競爭也很大。以前人們了解新聞都是從報紙,書籍上了解,那樣消息傳遞太慢了,現(xiàn)在我們只需要下載一個app就可以在任何時候都可以知道前一分鐘在某個地方發(fā)生的事。所以新聞資訊app的市場還是很廣的。本app是基于iOS系統(tǒng)開發(fā),因?yàn)楝F(xiàn)在很多人買iPhone手機(jī)為的就是更流暢,體驗(yàn)更好。本app運(yùn)行效率也高,操作簡潔,擴(kuò)展能力強(qiáng)等特點(diǎn)</p><p>  

23、1.3 本系統(tǒng)預(yù)達(dá)到的目標(biāo)</p><p>  本系統(tǒng)緊跟當(dāng)前移動手機(jī)開發(fā)趨勢,使用Objective-c語言開發(fā)一個基于新聞資訊類的app,實(shí)現(xiàn)基于iOS平臺的新聞快速瀏覽,觀看視頻的基本功能。</p><p>  第二章 新聞資訊app系統(tǒng)開發(fā)技術(shù)簡介</p><p>  該部分主要包括對iOS系統(tǒng)架構(gòu)的分析,核心操作系統(tǒng)的分析,應(yīng)用程序框架的分析,內(nèi)核的分析,

24、開發(fā)環(huán)境的配置信息,選用數(shù)據(jù)庫描述信息等。</p><p>  2.1 Objective-c簡介</p><p>  蘋果公司最早于2007年1月9日的Macworld大會上公布這個系統(tǒng),最初是設(shè)計(jì)給iPhone使用的,后來陸續(xù)套用到iPod touch、iPad以及Apple TV等蘋果產(chǎn)品上。iOS與蘋果的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的,因此同樣屬于類Un

25、ix的商業(yè)操作系統(tǒng)。原本這個系統(tǒng)名為iPhone OS,直到2010年6月7日WWDC大會上宣布改名為iOS</p><p>  Objective-C,是擴(kuò)充C的面向?qū)ο缶幊陶Z言。它主要使用于Mac OS, Objective-C通常寫作OC和較少用的Objective C或Objc,是在C的基礎(chǔ)上,加入面向?qū)ο筇匦詳U(kuò)充而成的編程語言。目前,Objective-C主要應(yīng)用于Mac OS X和iOS這兩個系統(tǒng)。O

26、bjective-C可以在任何GCC支持的平臺上進(jìn)行編譯,因?yàn)镚CC原生支持Objective-C</p><p>  Objective-C是C語言的嚴(yán)格母集合,意指任何原始的C語言程式都可以通過Objective-C編譯器而不需修改,也允許 Objective-C 使用任何原始的C語言代碼。Objective-C 形容自己為覆蓋于C語言上的一層薄紗,這是因?yàn)镺bjective-C的原意就是在原始C語言主體上加

27、入面向?qū)ο蟮奶匦?。Objective-C的面向?qū)ο笳Z法源于Smalltalk訊息傳遞風(fēng)格。所有其他非面向?qū)ο蟮恼Z法,包括變量型別,前處理器(preprocessing),流程控制,函數(shù)聲明與調(diào)用皆與C語言完全一致。</p><p>  2.1.1 ios系統(tǒng)框架</p><p>  iOS的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。iOS分為四層,分別為核心操作系統(tǒng) the Core O

28、S layer ,核心服務(wù)層 the Core Services layer ,媒體層 the Media layer ,Cocoa觸摸架構(gòu)層 the Cocoa Touch layer 。 </p><p>  2.1.2 iOS系統(tǒng)各個層次</p><p>  Core OS是位于iOS系統(tǒng)架構(gòu)最下面的一層是核心操作系統(tǒng)層,它包括內(nèi)存管理、文件系統(tǒng)、電源管理以及一些其他的操作系統(tǒng)任務(wù)。

29、它可以直接和硬件設(shè)備進(jìn)行交互。作為app開發(fā)者不需要與這一層打交道。</p><p>  Core Services是核心服務(wù)層,可以通過它來訪問iOS的一些服務(wù)。</p><p>  Media是媒體層,通過它我們可以在應(yīng)用程序中使用各種媒體文件,進(jìn)行音 頻與視頻的錄制,圖形的繪制,以及制作基礎(chǔ)的動畫效果。  </p><p>  Cocoa To

30、uch是可觸摸層,這一層為我們的應(yīng)用程序開發(fā)提供了各種有用的框架,并且大部分與用戶界面有關(guān),本質(zhì)上來說它負(fù)責(zé)用戶在iOS設(shè)備上的觸摸交互操作。包括以下這些組件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,F(xiàn)ile System Keychain,Certificates,Security,Bonjour等。在Cocoa Touch層中的很多技術(shù)都是基于Objective-C語言的。Object

31、ive-C語言為iOS提供了相機(jī)集合,文件管理,網(wǎng)絡(luò)操作等支持。例如開發(fā)人員接觸最多的UIKit框架,它為應(yīng)用程序提供了各種可視化組件,窗口 window ,視圖 view 和按鈕組件 UIButton 。Cocoa Touch層中的其他框架,對我們在應(yīng)用程序中的開發(fā)來說也是非常有用的,如訪問用戶通信錄功能框架,獲取照片信息功能的框架,負(fù)責(zé)加速感應(yīng)器和三維陀螺儀等硬件支持的框架等等。</p><p>  2.1.

32、3應(yīng)用程序框架</p><p>  編寫應(yīng)用程序項(xiàng)目,都是從Cocoa Touch層開始的,iOS 應(yīng)用程序的基礎(chǔ) Cocoa</p><p>  Touch 框架重用了許多 Mac 系統(tǒng)的成熟模式,但是它更多地專注于觸摸的接口和優(yōu)</p><p>  化。UIKit 為您提供了在 iOS 上實(shí)現(xiàn)圖形,事件驅(qū)動程序的基本工具,其建立在和 </p>&l

33、t;p>  Mac OS X 中一樣的 Foundation 框架上,包括文件處理,網(wǎng)絡(luò),字符串操作等。大部</p><p>  分 Cocoa Touch 的功能是用 Objective-C 實(shí)現(xiàn)的。Objective-C 是一種面向?qū)ο蟮?lt;/p><p>  語言,它編譯運(yùn)行的速度令人難以置信。更值得一提的是采用了真正的動態(tài)運(yùn)行時系</p><p>  統(tǒng)

34、,從而增添了難能可貴的靈活性。由于 Objective-C 是 C 的超集,因而可以很容</p><p>  易地將 C 甚至 C++ 代碼添加到您的 Cocoa Touch 程序里。</p><p>  當(dāng)您的應(yīng)用程序運(yùn)行時,Objective-C 運(yùn)行時系統(tǒng)按照執(zhí)行邏輯對對象進(jìn)行實(shí)例化—而且不僅僅是按照編譯時的定義。例如,一個運(yùn)行中的 Objective-C 應(yīng)用程序能夠加載一個界面(

35、一個由 Interface Builder 創(chuàng)建的 nib 文件),將界面中的 Cocoa 對象連接至您的程序代碼,然后,一旦UI中的某個按鈕被按下,程序便能夠執(zhí)行對應(yīng)的方法。</p><p><b>  基本框架有:</b></p><p>  AddressBook.framework 提供訪問存儲核心數(shù)據(jù)庫中用戶聯(lián)系人信息的功能。</p><

36、p>  AddressBook.framework提供一個用戶界面,用于顯示存儲在地址薄中的聯(lián)系人詳情。</p><p>  AudioUnit.framework提供一個接口,讓我們的應(yīng)用程序可以對音頻進(jìn)行處理。</p><p>  AudioToolbox.framework和AVFoundation.framework提供音頻錄制和回放的底層API,同時也負(fù)責(zé)管理音頻硬件。&l

37、t;/p><p>  CFNetwork.framework訪問和配置網(wǎng)絡(luò),像HTTP,F(xiàn)TP和Bonjour Services等。</p><p>  CoreFoundation.framework提供抽象的常用數(shù)據(jù)類型,如Unicode、strings、XML、URL等。</p><p>  CoreGraphics.framework提供2D繪制的基于C的API

38、。</p><p>  Foundation.framework提供Object-C的基礎(chǔ)類 像NSObject 、基本數(shù)據(jù)類型和操作系統(tǒng)服務(wù)等。</p><p>  GameKit.framework為游戲提供網(wǎng)絡(luò)功能,點(diǎn)對點(diǎn)互聯(lián)和游戲中的語音交流。</p><p>  MapKit.framework為應(yīng)用程序提供內(nèi)嵌地圖的接口。</p><

39、p>  MediaPlayer.framework提供視頻播放和音頻的功能。</p><p>  MessageUI.framework提供視圖控制接口用以處理E-mail和短信。</p><p>  OpenGLES.framework提供簡潔而高效的繪制2D和3D圖形的OpenGL API。</p><p>  QuartzCore.framework提供

40、動畫特效以及通過硬件進(jìn)行渲染的能力。</p><p>  StoreKit.framework為應(yīng)用程序提供在程序運(yùn)行中消費(fèi)的支持。</p><p>  SystemConfiguration.framework檢測當(dāng)前網(wǎng)絡(luò)是否可用和硬件設(shè)備狀態(tài)的能力。</p><p>  2.2 Xcode介紹</p><p>  Xcode 是運(yùn)行在操作

41、系統(tǒng)Mac OS X上的集成開發(fā)工具(IDE),由蘋果公司開發(fā)。Xcode是開發(fā)OS X 和 iOS 應(yīng)用程序的最快捷的方式。Xcode 具有統(tǒng)一的用戶界面設(shè)計(jì),編碼、測試、調(diào)試都在一個簡單的窗口內(nèi)完成。 </p><p>  Xcode 4 的虛擬模型和設(shè)計(jì)功能讓你可以更輕松的開發(fā)和維護(hù)應(yīng)用程序。只需選擇應(yīng)用程序中想要編寫的部分,然后模型和設(shè)計(jì)系統(tǒng)將自動創(chuàng)建分類圖表,不僅可以顯示編碼,還可以讓你進(jìn)行瀏覽。

42、Mac OS X Core Data API 幫你的應(yīng)用程序創(chuàng)建數(shù)據(jù)結(jié)構(gòu)。更棒的是,它還自動提供撤消、重做和保存功能,無需編寫任何編碼。 </p><p>  Xcode 整合的 Apple Reference Library 為所有的Apple開發(fā)者文件提供一個單獨(dú)的搜索和顯示界面,這些文件包括來自蘋果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫甚至可以幫你將定期更新資料下載到你的電腦,保持

43、文件的最新狀態(tài)。Xcode 將幫你快速找到最新的答案。 </p><p>  Xcode 4 的核心部分是蘋果電腦公司下一代業(yè)界標(biāo)準(zhǔn)的 gcc 編譯器gcc 4.0。新的編譯器利用許多先進(jìn)的最優(yōu)化技術(shù)幫你從現(xiàn)存編碼中獲得更多性能。從超級計(jì)算世界借鑒來的自動向量化(Auto-vectorization)技術(shù)可以幫助你釋放每臺 Intel 系統(tǒng)中速度引擎的能量,而不需要編寫向量化編碼。其他的最優(yōu)化工具則支持反饋定向的

44、最優(yōu)化,以及隱藏模塊分析。 </p><p>  Xcode 將賦予你創(chuàng)建諸如計(jì)算和渲染引擎應(yīng)用程序的能力,這些應(yīng)用程序使用64位內(nèi)存定址。這非常適合數(shù)據(jù)集中的應(yīng)用程序,其通過訪問內(nèi)存中的數(shù)據(jù)運(yùn)行速度更快,遠(yuǎn)勝于磁盤訪問。Xcode 將為你提供工具來建立并調(diào)試適合 Intel Core i5, i7 和 Mac OS X Lion 的 32 或 64 位應(yīng)用程序,還可以讓你創(chuàng)建包含32位和64位執(zhí)行能力的 Fat

45、 Binaries。 </p><p>  眾所周知,在構(gòu)建中引進(jìn)多重處理器可以提高速度,Xcode 能幫你實(shí)現(xiàn)這個明顯的結(jié)論。利用支持 Rendezvous 的分布式構(gòu)建功能,可以輕易地把編譯工作量分散到閑置的電腦上來寄放構(gòu)建,或者更好是在單獨(dú)的電腦上開發(fā)一個專門的 Xserve 構(gòu)建寄放區(qū),快速處理那些耗時的任務(wù)。</p><p>  不管你用 C、C++、 Objective-C或

46、Java編寫程序,在 AppleScript里編寫腳本,還是試圖從另一個奇妙的工具中轉(zhuǎn)移編碼,你會發(fā)現(xiàn) Xcode 編譯速度極快。每次操作都很快速和輕松。</p><p>  第三章 新聞資訊app技術(shù)與需求分析</p><p>  根據(jù)第一章所定義的課題研究方向及目標(biāo),本章將對系統(tǒng)功能進(jìn)行具體的需求分析,具體分析app所要實(shí)現(xiàn)的功能以及欲達(dá)到的效果。</p><p&g

47、t;  3.1 新聞資訊app的可行性分析</p><p>  3.1.1 使用Objective-C編程技術(shù)</p><p>  Objective-C是C語言的面向?qū)ο髷U(kuò)展,可以將其稱為“帶有對象的C”。相對于其他面向?qū)ο笳Z言,Objective-C更加容易學(xué)習(xí)。 </p><p>  3.1.2 Objective-C的三大特點(diǎn)(繼承,封裝,多態(tài)):</

48、p><p><b>  多態(tài)性</b></p><p>  在Objective-c中消息的調(diào)用看上去和標(biāo)準(zhǔn)C中的函數(shù)調(diào)用相似,但因?yàn)榉椒▽儆谝粋€對象,消息的行為與函數(shù)調(diào)用還是不同。在一些情況下,一些對象僅能對針對它涉及的方法起作用,不能被其他類的方法使用,即使這些類有同樣名稱的方法。這意味著兩個對象對同樣的消息有著不同的響應(yīng),即多態(tài)性。Objective-c中多態(tài)性和動

49、態(tài)綁定配合使用,可以使代碼提供給任意數(shù)量不同類型的對象使用,這些對象不需要再寫代碼的時候就已經(jīng)定義好,它們可以是以后開發(fā)的對象,也可以是其他項(xiàng)目的對象。</p><p><b>  封裝</b></p><p>  iOS封裝代碼可以看出一個程序員的代碼功底,一個好的app就必須要進(jìn)行代碼封裝,另外就是對一些API,重要屬性進(jìn)行封裝:</p><p

50、>  @private: 此時類的成員變量只能在當(dāng)前類的實(shí)現(xiàn)@implementation直接訪問;</p><p>  @protected: 此時類的成員變量只能在當(dāng)前類以及子類的實(shí)現(xiàn)@implementation能 直接訪問;</p><p>  @public:任何地方都可以訪問:</p><p>  @package:同一體系內(nèi)(架構(gòu))可以直接訪

51、問,介于@private和@public之間。</p><p><b>  繼承性</b></p><p>  類的定義是累進(jìn)的,任一個新類都是在另一個類的基礎(chǔ)上定義的,新類繼承了它的方法和實(shí)例變量。繼承使所有的類構(gòu)成一顆樹形的結(jié)構(gòu),在Objective-c中使用類一般要繼承或間接繼承于基類:NSObject,因?yàn)镹SObject提供了大量的有用特性。比如,一些圖形類

52、,需要繼承于Shape類,而Shape是Graphic類的子類,Graphic又繼承于NSObject類,因此,還是間接繼承于NSObject類。</p><p>  3.2社會因素和市場因素可行性</p><p>  如今社會發(fā)展迅速,每個人都不再滿足于某一個的游戲,越來越多地人手機(jī)里游戲在五個以上。所以一個好的游戲資訊app迫在眉睫。</p><p>  按照目

53、前市場情形,越來越多的移動開發(fā)者涌進(jìn)iOS開發(fā)領(lǐng)域。iOS平臺上應(yīng)用軟件,App Store的支付模式更為成熟而且有監(jiān)管,另外iOS的兼容性問題小,開發(fā)人員不用考慮太多的配置兼容問題,美觀大方的外形,更是吸引了大量的用戶。而且其良好的用戶體驗(yàn),都為iOS的發(fā)展奠定了良好的基礎(chǔ)。</p><p>  3.3 新聞資訊app需求分析</p><p>  本系統(tǒng)是基于iOS平臺開發(fā)的一款資訊類a

54、pp,將要應(yīng)用在iOS移動通訊設(shè)備上,能夠盡可能的滿足用戶更方便更快捷的了解更多新聞信息,對于一個資訊類app首先界面要讓人看的舒服,并且能留下印象,另外就是后臺數(shù)據(jù)要及時更新最新資訊。</p><p>  為了防止大家在瀏覽app的時候感覺枯燥無味,因此加了炫酷的視頻供大家看。</p><p>  第四章 新聞資訊app系統(tǒng)實(shí)現(xiàn)</p><p>  根據(jù)設(shè)計(jì)階段的

55、工作成果系統(tǒng)各個功能模塊實(shí)現(xiàn)的效果是比較理想的。下面是各個功能模塊的實(shí)現(xiàn)。</p><p>  4.1 初始框架的實(shí)現(xiàn)</p><p>  在系統(tǒng)的開始,需要實(shí)現(xiàn)一個定制的UITabBarController的控件,并且每個UITableBarItem都關(guān)聯(lián)相對應(yīng)的模塊:</p><p>  //自定義一個UITableBarItem,自己可以隨時改成自己想要的形狀

56、</p><p>  - (void)viewDidLoad</p><p><b>  {</b></p><p>  [super viewDidLoad];</p><p>  [self _createViewController];</p><p>  [self _createTabB

57、arButton];</p><p><b>  }</b></p><p>  #pragma mark - 創(chuàng)建視圖</p><p>  -(void)_createViewController</p><p><b>  {</b></p><p>  GiftView

58、Controller *gift = [[GiftViewController alloc]init];</p><p>  UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:gift];</p><p>  gift.title = @"福利&

59、quot;;</p><p>  gift.tabBarItem.image = [UIImage imageNamed:@"nav_gift_d"];</p><p>  TYTHomeViewController *home = [[TYTHomeViewController alloc]init];</p><p>  UINavigati

60、onController *navCtrl1 = [[UINavigationController alloc] initWithRootViewController:home];</p><p>  ZhaoYXViewController *zhaoxy = [[ZhaoYXViewController alloc]init];</p><p>  UINavigationContro

61、ller *navCtrl2 = [[UINavigationController alloc] initWithRootViewController:zhaoxy];</p><p>  MyHomeViewController *myhome = [[MyHomeViewController alloc]init];</p><p>  UINavigationController *

62、navCtrl3 = [[UINavigationController alloc] initWithRootViewController:myhome];</p><p>  //將四個對象放入數(shù)組</p><p>  NSArray *arrray = @[navCtrl1,navCtrl2,navCtrl,navCtrl3];</p><p>  self.v

63、iewControllers = arrray;</p><p><b>  }</b></p><p>  #pragma mark - 創(chuàng)建標(biāo)簽欄按鈕</p><p>  -(void)_createTabBarButton</p><p><b>  {</b></p><

64、p>  NSArray *normalName = @[@"nav_home_d",@"nav_game_d",@"nav_gift_d",@"nav_me_d"];</p><p>  NSArray *selectedName = @[@"nav_home_s",@"nav_game_s&quo

65、t;,@"nav_gift_s",@"nav_me_s"];</p><p>  NSArray *tabBarName = @[@"首頁",@"找游戲",@"福利",@"我"];</p><p>  for (UIView *v in self.tabBar.subvi

66、ews)</p><p><b>  {</b></p><p>  [v removeFromSuperview];</p><p><b>  }</b></p><p>  UIImageView *tabView = [[UIImageView alloc] initWithFrame:se

67、lf.tabBar.bounds];</p><p>  tabView.backgroundColor =RGB(247, 247, 247);</p><p>  tabView.userInteractionEnabled = YES;</p><p>  tabView.alpha = 0.9;</p><p>  [self.tab

68、Bar addSubview:tabView];</p><p>  CGFloat butWidth = WIDTH/normalName.count;</p><p>  for (int i = 0; i < normalName.count; i ++)</p><p><b>  {</b></p><p&g

69、t;  UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom];</p><p>  but.frame = CGRectMake(butWidth *i, 0, butWidth, TABBAR);</p><p>  but.tag = 100 + i;</p><p>  [but setIma

70、ge:[UIImage imageNamed:normalName[i]] forState:UIControlStateNormal];</p><p>  [but setImage:[UIImage imageNamed:selectedName[i]] forState:UIControlStateSelected];</p><p>  //設(shè)置按鈕中圖片的位置</p>

71、;<p>  [but setImageEdgeInsets:UIEdgeInsetsMake(SYRealValue(6), SYRealValue(29), TABBAR - 27, SYRealValue(29))];</p><p>  [self.tabBar addSubview:but];</p><p>  UILabel *tabLabel = [[UILa

72、bel alloc]initWithFrame:CGRectMake(butWidth * i +SYRealValue(29), TABBAR -25, butWidth , 23)];</p><p>  tabLabel.textAlignment = NSTextAlignmentCenter;</p><p>  if (i == 1) {</p><p>

73、;  tabLabel = [[UILabel alloc]initWithFrame:CGRectMake(butWidth * i +SYRealValue(24), TABBAR -25, butWidth , 23)];</p><p>  }else if (i == 3){</p><p>  tabLabel = [[UILabel alloc]initWithFrame:C

74、GRectMake(butWidth * i +SYRealValue(33), TABBAR -25, butWidth, 23)];</p><p><b>  }</b></p><p>  tabLabel.tag = 200 + i;</p><p>  tabLabel.text = tabBarName[i];</p>

75、<p>  tabLabel.font = [UIFont systemFontOfSize:11];</p><p>  tabLabel.textColor = [UIColor lightGrayColor];</p><p>  tabLabel.textAlignment = NSTextAlignmentLeft;</p><p>  [

76、self.tabBar addSubview:tabLabel];</p><p>  [but addTarget:self action:@selector(butAction:) forControlEvents:UIControlEventTouchUpInside];</p><p>  if (but.tag == 100)</p><p><b&

77、gt;  {</b></p><p>  but.selected = YES;</p><p>  [but setTitleColor:[UIColor redColor] forState:UIControlStateNormal];</p><p>  tabLabel.textColor = [UIColor redColor];</p&

78、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  #pragma mark - 選中按鈕響應(yīng)事件</p><p>  -(void)butAction:(UIButton *)

79、sender</p><p><b>  {</b></p><p>  self.selectedIndex = sender.tag - 100;</p><p>  sender.selected = !sender.selected;</p><p>  for (int i = 100; i < 103

80、; i ++)</p><p><b>  {</b></p><p>  UIButton *button = (UIButton *)[self.tabBar viewWithTag:i];</p><p>  button.selected = NO;</p><p>  if (button.selected =

81、= NO)</p><p><b>  {</b></p><p>  UILabel *label = (UILabel *)[self.tabBar viewWithTag:100 + button.tag];</p><p>  label.textColor = [UIColor lightGrayColor];</p>

82、<p><b>  }</b></p><p><b>  }</b></p><p>  sender.selected = YES;</p><p>  if (sender.selected == YES)</p><p><b>  {</b></p&g

83、t;<p>  UILabel *label = (UILabel *)[self.tabBar viewWithTag:sender.tag + 100];</p><p>  label.textColor = [UIColor redColor];</p><p><b>  }</b></p><p><b> 

84、 }</b></p><p>  //最后在AppDelegate初始化BaseTabBarController</p><p>  BaseTabBarController *tabBar = [[BaseTabBarController alloc]init];</p><p>  self.window.rootViewController = t

85、abBar;</p><p>  4.1首頁功能模塊實(shí)現(xiàn)</p><p>  //首頁滑動試圖創(chuàng)建</p><p>  -(void)topScroll{</p><p>  // 網(wǎng)絡(luò)加載 --- 創(chuàng)建帶標(biāo)題的圖片輪播器</p><p>  cycleScrollView2 = [SDCycleScrollView

86、cycleScrollViewWithFrame:CGRectMake(SYRealValue(0), 0, SYRealValue(320), SYRealValue(125)) delegate:self placeholderImage:[UIImage imageNamed:@"Zhanweibig"]];</p><p>  //判斷手機(jī)型號,進(jìn)行屏幕適配</p>&l

87、t;p>  // if (kWindowWidth == 414) {</p><p>  // cycleScrollView2 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(SYRealValue(0), 56, SYRealValue(320), SYRealValue(125)) delegate:self pl

88、aceholderImage:[UIImage imageNamed:@"placeholder"]];</p><p>  // </p><p><b>  // }</b></p><p>  cycleScrollView2.pageControlAliment = SDCycleScrollVi

89、ewPageContolAlimentCenter;</p><p>  cycleScrollView2.currentPageDotColor = [UIColor whiteColor];</p><p>  // 自定義分頁控件小圓標(biāo)顏色</p><p>  [uiew addSubview:cycleScrollView2];</p><

90、;p>  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{</p><p>  cycleScrollView2.imageURLStringsGroup = toparray;</p><p><b> 

91、 });</b></p><p><b>  }</b></p><p>  //中間分類視圖創(chuàng)建</p><p>  -(void)centerView{</p><p>  //獲得nib視圖數(shù)組</p><p>  NSArray *nib = [[NSBundle mainBu

92、ndle]loadNibNamed:@"HomeView" owner:self options:nil];</p><p>  tmpCustomView = [nib objectAtIndex:0];</p><p>  tmpCustomView.frame = CGRectMake(0, SYRealValue(130), kTYTScreenWidth, 1

93、94.5);</p><p>  NSLog(@"%@",NSStringFromCGRect(tmpCustomView.frame));</p><p>  [uiew addSubview:tmpCustomView];</p><p><b>  //給圖片綁定數(shù)據(jù)</b></p><p> 

94、 [_Rankingbigimage sd_setImageWithURL:ranking[0]placeholderImage:[UIImage imageNamed:@"ZhanWei"]];</p><p>  [_Rankingsamilloneimage sd_setImageWithURL:ranking[2]placeholderImage:[UIImage imageNamed

95、:@"ZhanWei"]];</p><p>  [_Rankingsmailltwoimage sd_setImageWithURL:ranking[4]placeholderImage:[UIImage imageNamed:@"ZhanWei"]];</p><p>  NSArray *big = [ranking objectAtIndex

96、DXY:1];</p><p>  NSArray *onesamill = [ranking objectAtIndexDXY:3];</p><p>  NSArray *twosmaill = [ranking objectAtIndexDXY:5];</p><p>  [_Rankinglable setFont:[UIFont fontWithName:

97、@"Helvetica-Bold" size:15]];</p><p>  //綁定游戲名稱,游戲大小,游戲介紹控件</p><p>  _Ranbigname.text = [big objectAtIndexDXY:0];</p><p>  _Ranbigsize.text = [big objectAtIndexDXY:1];</

98、p><p>  _Ranbigrole.text = [big objectAtIndexDXY:2];</p><p>  _Ranbigintroduce.text = [big objectAtIndexDXY:3];</p><p>  //綁定游戲名稱,游戲大小,游戲介紹控件</p><p>  _Ransamillonename.te

99、xt = [onesamill objectAtIndexDXY:0];</p><p>  _Ransamillonerole.text = [onesamill objectAtIndexDXY:2];</p><p>  _Ransamillonesize.text = [onesamill objectAtIndexDXY:1];</p><p>  //綁

100、定游戲名稱,游戲大小,游戲介紹控件</p><p>  _Ransamilltwoname.text = [twosmaill objectAtIndexDXY:0];</p><p>  _Ransamilltworole.text = [twosmaill objectAtIndexDXY:2];</p><p>  _Ransamilltwosize.text

101、 = [twosmaill objectAtIndexDXY:1];</p><p>  //創(chuàng)建點(diǎn)擊游戲跳轉(zhuǎn)方法</p><p>  [self image:_maxYxview];</p><p>  [self image:_LittView];</p><p>  [self image:_LittView1];</p>

102、<p><b>  }</b></p><p>  //爆笑視頻視圖創(chuàng)建</p><p>  -(void)bottonview{</p><p>  //獲得xib視圖數(shù)組</p><p>  NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"

103、;BottonView" owner:self options:nil];</p><p>  bottonview = [nib objectAtIndex:0];</p><p>  //設(shè)置lable控件字體的粗細(xì)</p><p>  [_BaoXiaoLable setFont:[UIFont fontWithName:@"Helveti

104、ca-Bold" size:15]];</p><p>  bottonview.frame = CGRectMake(0, SYRealValue(329.5), kTYTScreenWidth, SYRealValue(210));</p><p>  if (kWindowWidth == 414) {</p><p>  bottonview.fr

105、ame = CGRectMake(0, SYRealValue(329.5)-57, kTYTScreenWidth, SYRealValue(210));</p><p><b>  }</b></p><p>  [uiew addSubview:bottonview];</p><p>  [self imagevideo:_VideoI

106、mage];</p><p>  //活動禮包視圖創(chuàng)建</p><p>  -(void)huodonglibao{</p><p><b>  //獲得xib視圖</b></p><p>  NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"HuoDong

107、View" owner:self options:nil];</p><p>  tmpCustomView = [nib objectAtIndex:0];</p><p>  tmpCustomView.frame = CGRectMake(0, SYRealValue(544.5), kTYTScreenWidth,SYRealValue(242));</p>

108、<p>  if (kWindowWidth == 414) {</p><p>  tmpCustomView.frame = CGRectMake(0, SYRealValue(544.5)-57, kTYTScreenWidth,SYRealValue(242));</p><p><b>  }</b></p><p>  

109、_giftactivitimage.userInteractionEnabled = YES;</p><p>  [self imageviewtag:_giftactivitimage];</p><p>  [uiew addSubview:tmpCustomView];</p><p>  NSMutableArray *arrayyy = [NSMutab

110、leArray array];</p><p>  arrayyy = [ActivityPackage objectAtIndexDXY:0];</p><p>  if (arrayyy.count < 4) {</p><p>  _giftactivitimage.image = [UIImage imageNamed:@"ZhanWei&q

111、uot;];</p><p>  _Gifttext.text = @"";</p><p>  _GiftTime.text = @"";</p><p>  _Giftname.text = @"";</p><p><b>  }else{</b><

112、/p><p>  [_giftactivitimage sd_setImageWithURL:[arrayyy objectAtIndexDXY:0]];</p><p>  _Gifttext.text = [arrayyy objectAtIndexDXY:1];</p><p>  _GiftTime.text = [arrayyy objectAtIndexDX

113、Y:2];</p><p>  _Giftname.text = [arrayyy objectAtIndexDXY:3];</p><p><b>  }</b></p><p>  _tagsting = [[NSString alloc]init];</p><p>  _tagsting = @"rem

114、en";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //創(chuàng)建視圖列表</b></p><p>  - (UITableView *)tableView {</p><p>  i

115、f (!_tableView) {</p><p>  _tableView.separatorStyle = NO;</p><p>  self.automaticallyAdjustsScrollViewInsets = NO,</p><p>  _tableView = [[UITableView alloc]initWithFrame:CGRectMak

溫馨提示

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

評論

0/150

提交評論