版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 本科畢業(yè)論文(設(shè)計(jì)) 題 目: 掌 廚 學(xué) 院: 專(zhuān)業(yè)年級(jí): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 年 月 日摘 要隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)和Internet的飛速發(fā)展,基于因特網(wǎng)的手機(jī)移動(dòng)應(yīng)用已經(jīng)開(kāi)始成為一種全新的功能需求,并且越來(lái)越受到人們的關(guān)注。由于移動(dòng)應(yīng)用具有簡(jiǎn)單性,隨時(shí)隨地性等諸多特點(diǎn),因此它有著傳統(tǒng)計(jì)算機(jī)所無(wú)法比擬的優(yōu)點(diǎn)。這樣一來(lái),手機(jī)移動(dòng)應(yīng)用的開(kāi)發(fā)工作就顯得尤為重要。并且隨著生活水平的提高,人們對(duì)于吃的要求也是越來(lái)越高,所以一款關(guān)于美食應(yīng)用軟件的開(kāi)發(fā)也會(huì)符合人們的需求。本文主要介紹了iOS平臺(tái)以及基于該平臺(tái)的美食教程應(yīng)用軟件的開(kāi)發(fā)過(guò)程,詳盡論述了從需求分析、系統(tǒng)分
2、析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、以及測(cè)試與調(diào)試的整個(gè)開(kāi)發(fā)過(guò)程,總結(jié)了開(kāi)發(fā)過(guò)程中的經(jīng)驗(yàn)及本系統(tǒng)今后的改進(jìn)方向。Xcode 5.0開(kāi)發(fā)工具,采用成熟的軟件研制技術(shù),后臺(tái)數(shù)據(jù)庫(kù)采用SQLite3。關(guān)鍵字:iOS開(kāi)發(fā) 美食應(yīng)用軟件 Xcode SQLite3AbstractWith the rapid development of computer network communication technology and Internet, mobile application based on Internet has begun to become a kind of new functional req
3、uirements, and more and more get the attention of people.Because the mobile applications has simplicity, sex anytime and anywhere, and many other features, so it has the advantages of traditional computer.As a result, mobile application development work is particularly important.And with the improve
4、ment of living standards, people also more and more high to the requirement of eating, so a about food application software development also will meet the demand of people.IOS is mainly introduced in this paper, and based on the platform of food tutorial application software development process, det
5、ailed discussed from the requirement analysis, system analysis, general design, detailed design, and testing and debugging of the whole development process, summed up the experience in the process of development and the improvement direction of the system in the future. Xcode 5.0 development tools,
6、USES the mature software development technology, background database using SQLite3.Key Words : IOS Develop Food applications Xcode SQLite3。目錄1引言11.1掌廚應(yīng)用的意義11.2 IOS開(kāi)發(fā)的研究現(xiàn)狀12技術(shù)基礎(chǔ)33系統(tǒng)分析與設(shè)計(jì)53.1需求分析53.1.1 編寫(xiě)目的53.1.2 開(kāi)發(fā)的軟件硬件要求53.2總體設(shè)計(jì)53.2.1主要功能53.2.2軟件結(jié)構(gòu)示意圖63.3詳細(xì)設(shè)計(jì)63.3.1主界面設(shè)計(jì)63.3.2對(duì)癥治療界面設(shè)計(jì)73.3.3熱門(mén)推薦界面設(shè)計(jì)83
7、.3.4搖一搖界面設(shè)計(jì)93.3.5萬(wàn)道菜界面設(shè)計(jì)103.3.6菜品詳情界面設(shè)計(jì)113.3.7二維碼界面設(shè)計(jì)113.3.8登錄與注冊(cè)界面設(shè)計(jì)113.3.9“我的”界面設(shè)計(jì)123.3.10收藏界面設(shè)計(jì)133.3.11五層搜索界面設(shè)計(jì)134系統(tǒng)實(shí)現(xiàn)154.1各界面的實(shí)現(xiàn)154.1.1主界面的實(shí)現(xiàn)154.1.2對(duì)癥食療界面的實(shí)現(xiàn)154.1.3 熱門(mén)推薦界面的實(shí)現(xiàn)174.1.4搖一搖界面的實(shí)現(xiàn)184.1.5萬(wàn)道菜界面的實(shí)現(xiàn)194.1.6菜品詳情界面的實(shí)現(xiàn)204.1.7二維碼界面的實(shí)現(xiàn)214.1.8登錄與注冊(cè)界面的實(shí)現(xiàn)214.1.9“我的”界面的實(shí)現(xiàn)224.1.10收藏界面的實(shí)現(xiàn)234.1.11五層搜索界
8、面的實(shí)現(xiàn)254.2實(shí)現(xiàn)系統(tǒng)過(guò)程中遇到的關(guān)鍵問(wèn)題254.3關(guān)鍵代碼255總結(jié)476致謝詞487參考文獻(xiàn)4851 引言1.1掌廚應(yīng)用的意義一款美食教程應(yīng)用軟件,精選萬(wàn)道家常菜高清“同步視頻”,輕松一點(diǎn),即可隨意瀏覽,擁有上萬(wàn)道家常菜、上萬(wàn)個(gè)同步視頻,如此卓越不凡,將全面顛覆您對(duì)美食軟件的認(rèn)識(shí)。規(guī)模較大,菜譜數(shù)量近萬(wàn)道,同步視頻數(shù)量近萬(wàn)個(gè),視頻品質(zhì)好,清晰度、流暢度好,為您帶來(lái)極致的視覺(jué)體驗(yàn)。在掌廚客戶端,你可以體會(huì)到:萬(wàn)道美食任您選,展示高清菜譜圖片,無(wú)限滑動(dòng)帶來(lái)無(wú)限驚喜。萬(wàn)個(gè)同步視頻邊看邊做,每道家常菜都配有“材料準(zhǔn)備”與“制作過(guò)程”兩段視頻,兩段視頻與現(xiàn)實(shí)烹飪完全同步。提供多種檢索方式,包含智
9、能選菜、菜系搜索、口味搜索等47種快速搜索功能,還有隨機(jī)的搖一搖選菜功能無(wú)論您帶著哪種目的搜索,都會(huì)有所收獲。點(diǎn)擊輕松注冊(cè),萬(wàn)道美食任您收藏。點(diǎn)擊“我的”實(shí)現(xiàn)注冊(cè),注冊(cè)成功,點(diǎn)擊每道菜上的紅心按鈕即可實(shí)現(xiàn)收藏,菜例即歸入收藏夾,以后便可隨查隨看。 1.2 IOS開(kāi)發(fā)的研究現(xiàn)狀世界在發(fā)展,社會(huì)在進(jìn)步,在信息化時(shí)代的今天,人們對(duì)于手機(jī)有了進(jìn)一步的了解與應(yīng)用。隨著科技的發(fā)展,智能手機(jī)已經(jīng)成為了今天手機(jī)市場(chǎng)的主流產(chǎn)品,現(xiàn)在大部分的人都在用智能手機(jī)。智能手機(jī)的發(fā)展勢(shì)不可擋。現(xiàn)在常用的智能手機(jī)系統(tǒng)有:蘋(píng)果ios智能系統(tǒng)、安卓智能系統(tǒng)、塞班智能系統(tǒng)、軟智能手機(jī)系統(tǒng)、黑莓智能系統(tǒng)等等。毫無(wú)疑問(wèn),手機(jī)的智能化是
10、手機(jī)的一場(chǎng)革命?;ヂ?lián)網(wǎng)應(yīng)用的發(fā)展和3G網(wǎng)絡(luò)的成熟,3G智能手機(jī)成為最重要的終端載體,吸引了越來(lái)越多消費(fèi)者利用智能手機(jī)網(wǎng)上沖浪、收發(fā)電子郵件、看電影、打游戲、視頻對(duì)話等。智能手機(jī)讓人們的生活變得越來(lái)越便捷,這就使得智能手機(jī)成為了消費(fèi)者追捧的對(duì)象?,F(xiàn)在,消費(fèi)者已經(jīng)可以用具有支付、認(rèn)證功能的手機(jī)來(lái)購(gòu)買(mǎi)車(chē)票和電影票、打開(kāi)大門(mén)、借書(shū)、充當(dāng)會(huì)員卡,可以實(shí)現(xiàn)移動(dòng)通信與金融服務(wù)的完美結(jié)合以及有線通信和無(wú)線通信的無(wú)縫過(guò)渡,讓消費(fèi)者享受到方便安全的金融生活服務(wù)。其次,手機(jī)搜索將超過(guò)計(jì)算機(jī)搜索。再次,手機(jī)內(nèi)容共享。手機(jī)圖片、音頻、視頻共享被認(rèn)為是3G手機(jī)業(yè)務(wù)的重要應(yīng)用。中國(guó)擁有者世界上最大規(guī)模的潛在移動(dòng)互聯(lián)網(wǎng)市場(chǎng),
11、而且由于文化等原因,中國(guó)移動(dòng)互聯(lián)網(wǎng)市場(chǎng)有著自身較為特殊的需求。這使得生硬地照搬國(guó)外作品不一定能在國(guó)內(nèi)有較好的反響。實(shí)際上,如果國(guó)內(nèi)企業(yè)能針對(duì)國(guó)內(nèi)需開(kāi)發(fā)軟件,或者對(duì)借鑒來(lái)的國(guó)外經(jīng)驗(yàn)加以調(diào)整,反而能達(dá)到更好的經(jīng)濟(jì)效益。例如酒店達(dá)人軟件對(duì)于國(guó)內(nèi)賓館移動(dòng)預(yù)定業(yè)務(wù)進(jìn)行針對(duì)性的開(kāi)發(fā)運(yùn)作,在短時(shí)間內(nèi)就開(kāi)始了盈利。蘋(píng)果ios系統(tǒng)作為高端機(jī)的智能系統(tǒng)截止至2011年11月,根據(jù)Canalys的數(shù)據(jù)顯示,iOS已經(jīng)占據(jù)了全球智能手機(jī)系統(tǒng)市場(chǎng)份額的30%,在美國(guó)的市場(chǎng)占有率為43%,并在逐漸的增加總之,在移動(dòng)互聯(lián)網(wǎng)時(shí)代,傳統(tǒng)的信息產(chǎn)業(yè)運(yùn)作模式正在被打破,新的運(yùn)作模式正在形成。對(duì)于手機(jī)廠商、互聯(lián)網(wǎng)公司、消費(fèi)電子公司和
12、網(wǎng)絡(luò)運(yùn)營(yíng)商來(lái)說(shuō),這既是機(jī)遇,也是挑戰(zhàn),他們積極參與到移動(dòng)互聯(lián)網(wǎng)市場(chǎng)的市場(chǎng)競(jìng)爭(zhēng)中。2 技術(shù)基礎(chǔ)移動(dòng)app顧名思義就是手機(jī)軟件app,也叫移動(dòng)終端,手機(jī)客戶終端,移動(dòng)軟件,手機(jī)應(yīng)用軟件等,屬于移動(dòng)設(shè)備上面運(yùn)行的一款終端軟件。在移動(dòng)互聯(lián)網(wǎng)風(fēng)生水起的時(shí)代,移動(dòng)app已經(jīng)越來(lái)越深入人心,app應(yīng)用開(kāi)發(fā)市場(chǎng)突飛猛進(jìn),成為了移動(dòng)互聯(lián)網(wǎng)的主流。掌廚是基于app的開(kāi)發(fā)理論基礎(chǔ)而實(shí)現(xiàn)的,首先是基于移動(dòng)終端上的隨身性,互動(dòng)性通過(guò)新技術(shù)以及數(shù)據(jù)分析,實(shí)現(xiàn)了精準(zhǔn)定位企業(yè)目標(biāo)用戶。其次軟件開(kāi)發(fā)是一個(gè)復(fù)雜的過(guò)程,軟件過(guò)程可以通過(guò)軟件過(guò)程模型來(lái)表示。概念模式是非常重要的,它是指人們?cè)谡J(rèn)識(shí)事物的過(guò)程中,對(duì)于某一事物或者系統(tǒng)形成
13、的抽象的一般化的框架,是在人們長(zhǎng)期的實(shí)踐活動(dòng)中實(shí)現(xiàn)的,概念模式簡(jiǎn)單明了,易于理解。概念模式具有相對(duì)性,面對(duì)不同的用途會(huì)有不同形式的概念模型,各有各的用處。軟件開(kāi)發(fā)中有常見(jiàn)的其中概念模式,結(jié)構(gòu)圖,數(shù)據(jù)流程圖,實(shí)體關(guān)系圖等等,這些概念模式都是為了實(shí)現(xiàn)軟件的易于理解性。iOS簡(jiǎn)介:iOS最初是設(shè)計(jì)在iPhone上的操作系統(tǒng),蘋(píng)果公司于2007年1月9日的Macworld大會(huì)上公布了這個(gè)系統(tǒng),并命名為iPhoneOS,但隨著此系統(tǒng)在iPodtouch、iPad以及AppleTV等蘋(píng)果產(chǎn)品上的廣泛應(yīng)用,蘋(píng)果公司于2010年6月7日WWDC大會(huì)上將其改名為IOS。據(jù)Canalys的數(shù)據(jù)顯示,截止到2011
14、年11月,iOS占據(jù)了全球智能手機(jī)系統(tǒng)市場(chǎng)份額的30%,在美國(guó)的市場(chǎng)占有率更是達(dá)到了43%。隨著Andriod開(kāi)源操作系統(tǒng)的異軍突起以及WindowsPhone的發(fā)力,iOS市場(chǎng)份額正被一點(diǎn)點(diǎn)的蠶食,但是iOS設(shè)備的利潤(rùn)率高的驚人,以智能手機(jī)為例,iphone的利潤(rùn)額占到整個(gè)智能手機(jī)利潤(rùn)額的80%,受益于此,蘋(píng)果的市值也達(dá)到了5000億美元。Objective-c簡(jiǎn)介:Objective-C是非?!皩?shí)際”的語(yǔ)言。它使用一個(gè)用C寫(xiě)成的運(yùn)行庫(kù),只會(huì)令應(yīng)用程序的大小增加很小。Objective-C寫(xiě)成的程序通常不會(huì)比其源代碼大很多。而其函數(shù)庫(kù)(通常附在軟件發(fā)行本)亦和Smalltalk系統(tǒng)要使用極大
15、的內(nèi)存來(lái)開(kāi)啟一個(gè)窗口的情況相反。Objective-C的最初版本并不支持垃圾回收。在當(dāng)時(shí)這是爭(zhēng)論的焦點(diǎn)之一,很多人考慮到Smalltalk回收時(shí)有漫長(zhǎng)的“死亡時(shí)間”,令整個(gè)系統(tǒng)失去功用。Objective-C為避免此問(wèn)題才不擁有這個(gè)功能。雖然某些第三方版本已經(jīng)加入這個(gè)功能(尤其是GNUstep),再起MacOSX10.3中仍未引入這個(gè)功能。不過(guò)令人欣慰的是在Apple發(fā)布的XCode4中已經(jīng)支持自動(dòng)釋放,在xCode4中的自動(dòng)釋放,也就是ARC(AutomaticReferenceCounting)機(jī)制,是不需要用戶手動(dòng)去Release一個(gè)對(duì)象,而是在編譯期間,編譯器會(huì)自動(dòng)幫你添加那些以前你經(jīng)
16、常寫(xiě)的NSObjectrelease。另一個(gè)問(wèn)題是ObjC不包括命名空間機(jī)制(namespacemechanism)。取而代之的是程序設(shè)計(jì)師必須在其類(lèi)別名稱加上前綴,時(shí)常引致沖突。在2004年,在Cocoa編程環(huán)境中,所有MacOSX類(lèi)別和函式均有“NS”作為前綴,例如NSObject或NSButton來(lái)清楚分別它們屬于MacOSX核心;使用“NS”是由于這些類(lèi)別的名稱在NeXTSTEP開(kāi)發(fā)時(shí)定下。雖然Objective-C是C的母集,但它也不視C的基本型別為第一級(jí)的對(duì)象。和C+不同,Objective-C不支援運(yùn)算子多載(它不支持ad-hoc多型)。亦與C+不同,但和Java相同,Objec
17、tive-C只容許對(duì)象繼承一個(gè)類(lèi)別(不設(shè)多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒(méi)有很多缺點(diǎn),例如額外執(zhí)行時(shí)間過(guò)重和二進(jìn)制不兼容。由于Obj-C使用動(dòng)態(tài)運(yùn)行時(shí)類(lèi)型,而且所有的方法都是函數(shù)調(diào)用(有時(shí)甚至連系統(tǒng)調(diào)用(syscalls)也如此),很多常見(jiàn)的編譯時(shí)性能優(yōu)化方法都不能應(yīng)用于Obj-C(例如:內(nèi)聯(lián)函數(shù)、常數(shù)傳播、交互式優(yōu)化、純量取代與聚集等)。這使得Obj-C性能劣于類(lèi)似的對(duì)象抽象語(yǔ)言(如C+)。不過(guò)Obj-C擁護(hù)者認(rèn)為既然Obj-C運(yùn)行時(shí)消耗較大,Obj-C本來(lái)就不應(yīng)應(yīng)用于C+或Java常見(jiàn)的底層抽象ios系統(tǒng)框架:iOS的系統(tǒng)架構(gòu)和其操作
18、系統(tǒng)一樣,采用了分層的架構(gòu)。iOS分為四層,分別為核心操作系統(tǒng)(theCoreOSlayer),核心服務(wù)層(theCoreServiceslayer),媒體層(theMedialayer),Cocoa觸摸架構(gòu)層(theCocoaTouchlayer)。 SQLite數(shù)據(jù)庫(kù)介紹:SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如Tcl、C#、PHP
19、、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月.至今已經(jīng)有10個(gè)年頭,SQLite也迎來(lái)了一個(gè)版本SQLite3已經(jīng)發(fā)布。Xcode整合的AppleReferenceLibrary為所有的Apple開(kāi)發(fā)者文件提供一個(gè)單獨(dú)的搜索和顯示界面,這些文件包括來(lái)自蘋(píng)果電腦公司網(wǎng)站的在線文件,以及存放在你電腦上的文件。新的參考資料庫(kù)甚至可以幫你將定期更新資料下載到你的電腦,保持文件的最新?tīng)顟B(tài)。Xcode將幫你快速找到最新的答案。Xcode將賦予你創(chuàng)建諸如計(jì)算和渲染引
20、擎應(yīng)用程序的能力,這些應(yīng)用程序使用64位內(nèi)存定址。這非常適合數(shù)據(jù)集中的應(yīng)用程序,其通過(guò)訪問(wèn)內(nèi)存中的數(shù)據(jù)運(yùn)行速度更快,遠(yuǎn)勝于磁盤(pán)訪問(wèn)。Xcode將為你提供工具來(lái)建立并調(diào)試適合IntelCorei5,i7和MacOSXLion的32或64位應(yīng)用程序,還可以讓你創(chuàng)建包含32位和64位執(zhí)行能力的FatBinaries。眾所周知,在構(gòu)建中引進(jìn)多重處理器可以提高速度,Xcode能幫你實(shí)現(xiàn)這個(gè)明顯的結(jié)論。利用支持Rendezvous的分布式構(gòu)建功能,可以輕易地把編譯工作量分散到閑置的電腦上來(lái)寄放構(gòu)建,或者更好是在單獨(dú)的電腦上開(kāi)發(fā)一個(gè)專(zhuān)門(mén)的Xserve構(gòu)建寄放區(qū),快速處理那些耗時(shí)的任務(wù)。3 系統(tǒng)分析與設(shè)計(jì)3.
21、1 需求分析3.1.1 編寫(xiě)目的“養(yǎng)生之道,莫先于食。”利用食物的營(yíng)養(yǎng)來(lái)防治疾病,可促進(jìn)健康長(zhǎng)壽。通過(guò)調(diào)整飲食來(lái)補(bǔ)養(yǎng)臟腑功能,促進(jìn)身體健康和疾病的康。俗話說(shuō):“藥補(bǔ)不如食補(bǔ)?!彼^食補(bǔ),就是食補(bǔ)能起到藥物所無(wú)法起到的作用。在我國(guó),利用調(diào)整飲食作為一種養(yǎng)生健身手段有著悠久的歷史,比如唐代名醫(yī)孫思邈對(duì)飲食養(yǎng)生作了重大貢獻(xiàn),他認(rèn)為,老年人疾病的治療,首先要注重飲食。因?yàn)椤笆衬芘判岸才K腑悅神爽志以資氣血,而藥性烈,猶若御兵,藥勢(shì)有所偏助,令人臟氣不平,易受外患,所以若能用食平疴,適性遣疾,最易收養(yǎng)生之效益”。飲食是人類(lèi)維持生命的基本條件,而要使人活得健康愉快、充滿活力和智慧,則不僅僅滿足于吃飽肚子,
22、還必須考慮飲食的合理調(diào)配,保證人體所需的各種營(yíng)養(yǎng)素的攝入平衡且充足,并且能被人體充分吸收利用。掌廚給了人們更多的選擇,上萬(wàn)道菜品展示,上萬(wàn)道美食制作視頻,讓人們輕松擁有精湛的廚藝,及合理的搭配,讓你做出來(lái)的飯菜不在單調(diào),并且更加有營(yíng)養(yǎng)。這就是編寫(xiě)掌廚的目的。3.1.2 開(kāi)發(fā)的軟件硬件要求硬件:主流配置 pc機(jī)(裝黑蘋(píng)果,大多數(shù)主流硬件的驅(qū)動(dòng)都能找到,但還是推薦虛擬),iMac或Macbook Air或Macbook Pro軟件:虛擬機(jī)VM + Mac OS 系統(tǒng)鏡像,X-Code在虛擬Mac中安裝,蘋(píng)果免費(fèi)提供),Mac OS,X-CodeiOS設(shè)備:iPhone、iPad、iPod3.2 總
23、體設(shè)計(jì)3.2.1 主要功能a.萬(wàn)道美食任你選:展現(xiàn)高清菜譜圖片,無(wú)限滑動(dòng)帶來(lái)無(wú)限驚喜。b.提供多種檢索方式:包含智能選菜、菜系搜索、口味搜索以及搖一搖選菜。c.菜品制作視頻及四大相關(guān)信息板塊,迅速成為掌廚達(dá)人。d.輕松注冊(cè)登錄,美食任你收藏。e.對(duì)癥食療,健康美食生活3.2.2 軟件結(jié)構(gòu)示意圖3.3 詳細(xì)設(shè)計(jì)3.3.1 主界面設(shè)計(jì)圖3.2 主界面設(shè)計(jì)3.3.2 對(duì)癥治療界面設(shè)計(jì)點(diǎn)擊主界面上對(duì)癥治療進(jìn)入相應(yīng)界面出現(xiàn)多種類(lèi)別 點(diǎn)擊類(lèi)別出現(xiàn)多種相應(yīng)病狀 3.3.3 熱門(mén)推薦界面設(shè)計(jì)圖3.4 熱門(mén)推薦界面設(shè)計(jì)點(diǎn)擊主界面上熱門(mén)推薦出現(xiàn)多種菜品3.3.4 搖一搖界面設(shè)計(jì)點(diǎn)擊主界面上搖一搖進(jìn)入搖一搖界面 搖
24、晃手機(jī)后隨機(jī)出現(xiàn)一款美食圖3.5 搖一搖界面設(shè)計(jì) 3.3.5 萬(wàn)道菜界面設(shè)計(jì)圖3.6 萬(wàn)道菜界面設(shè)計(jì)點(diǎn)擊主界面上萬(wàn)道美食進(jìn)入萬(wàn)道菜界面3.3.6 菜品詳情界面設(shè)計(jì)點(diǎn)擊菜品后出現(xiàn)相應(yīng)菜品的材料,相關(guān)常識(shí),相宜相克,做法3.3.7 二維碼界面設(shè)計(jì)點(diǎn)擊主界面上二維碼進(jìn)入到二維碼界面 3.3.8 登錄與注冊(cè)界面設(shè)計(jì)點(diǎn)擊主界面上“我的”自動(dòng)進(jìn)入到登陸注冊(cè)界面 3.3.9 “我的”界面設(shè)計(jì)點(diǎn)擊主界面上的我的進(jìn)入到我的界面3.3.10收藏界面設(shè)計(jì)點(diǎn)擊我的界面中的我的收藏后出現(xiàn)我的收藏界面點(diǎn)擊菜品下的紅心,可以收藏該菜品,收藏后彈出收藏成功對(duì)話框,點(diǎn)擊確定后可以在我的收藏界面中查看該菜品3.3.11五層搜索界
25、面設(shè)計(jì)4 系統(tǒng)實(shí)現(xiàn)4.1 各界面的實(shí)現(xiàn)4.1.1 主界面的實(shí)現(xiàn)點(diǎn)擊主界面上的相應(yīng)功能進(jìn)入到相應(yīng)的功能模塊4.1.2 對(duì)癥食療界面的實(shí)現(xiàn)圖4.2-a 對(duì)癥食療界面實(shí)現(xiàn)點(diǎn)擊科目出現(xiàn)具體病狀 點(diǎn)擊具體病狀出現(xiàn)病狀詳情點(diǎn)擊詳情出現(xiàn)病狀的詳情及相關(guān)的飲食保健 點(diǎn)擊相應(yīng)菜品可看菜品詳情4.1.3 熱門(mén)推薦界面的實(shí)現(xiàn)點(diǎn)擊主界面上的熱門(mén)推薦進(jìn)入到熱門(mén)推薦界面,點(diǎn)擊相應(yīng)菜品,可看菜品詳情4.1.4搖一搖界面的實(shí)現(xiàn)點(diǎn)擊主界面上的搖一搖進(jìn)入到搖一搖界面搖晃手機(jī)后出現(xiàn)相應(yīng)的菜品 4.1.5萬(wàn)道菜界面的實(shí)現(xiàn)點(diǎn)擊主界面上的萬(wàn)道菜進(jìn)入萬(wàn)道菜界面,點(diǎn)擊相應(yīng)菜品可看菜品詳情 圖4.5 萬(wàn)道菜界面實(shí)現(xiàn) 4.1.6菜品詳情界面的實(shí)
26、現(xiàn)點(diǎn)擊菜品后進(jìn)入菜品詳情界面4.1.7二維碼界面的實(shí)現(xiàn)點(diǎn)擊主界面上的二維碼進(jìn)入到二維碼界面4.1.8登錄與注冊(cè)界面的實(shí)現(xiàn)4.1.9“我的”界面的實(shí)現(xiàn)點(diǎn)擊主界面上的“我的”進(jìn)入我的界面,點(diǎn)擊我的收藏可進(jìn)入收藏界面4.1.10收藏界面的實(shí)現(xiàn)點(diǎn)擊我的界面中的我的收藏后出現(xiàn)我的收藏界面,點(diǎn)擊菜品下的紅心,可以收藏該菜品,收藏后彈出收藏成功對(duì)話框,點(diǎn)擊確定后可以在我的收藏界面中查看該菜品點(diǎn)擊編輯,進(jìn)入編輯界面可刪除菜品點(diǎn)擊完成后日退出編輯界面 4.1.11五層搜索界面的實(shí)現(xiàn)點(diǎn)擊主界面上的搜索,進(jìn)入到搜索界面4.2 實(shí)現(xiàn)系統(tǒng)過(guò)程中遇到的關(guān)鍵問(wèn)題 小組件比較多,寫(xiě)成復(fù)用,工作量較大導(dǎo)入第三方庫(kù)及整合代碼4.
27、3 關(guān)鍵代碼- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil self = super initWithNibName:nibNameOrNil bundle:nibBundleOrNil; if (self) self initMember; return self;- (void)viewDidLoad super viewDidLoad; self uiConfig; self loadData;#pragma mark - QFTable View DataSource- (
28、CGFloat)QFTableView:(QFTableView *)fanView widthForIndex:(NSInteger)index return 320;- (NSInteger)numberOfIndexForQFTableView:(QFTableView *)fanView return _mainArray.count;- (void)QFTableView:(QFTableView *)fanView setContentView:(UIView *)contentView ForIndex:(NSInteger)index LLCMainModel *model =
29、 _mainArray objectAtIndex:index; UIImageView *pictureImageView = (UIImageView *)contentView; pictureImageView setImageWithURL:NSURL URLWithString:model.imagePathLandscape placeholderImage:UIImage imageNamed:defaultImage.png;- (UIView *)QFTableView:(QFTableView *)fanView targetRect:(CGRect)targetRect
30、 ForIndex:(NSInteger)index UIImageView *pictureImageView = UIImageView alloc initWithFrame:targetRect; return pictureImageView;#pragma mark QFTable View Delegate#pragma mark 點(diǎn)選cell, 彈入視頻界面- (void)QFTableView:(QFTableView *)fanView selectIndex:(NSInteger)index LLCVideoViewController *vVC = LLCVideoVi
31、ewController alloc init; vVC.dataArray = _mainArray; vVC.currentIndex = index; self.navigationController pushViewController:vVC animated:YES;#pragma mark 翻頁(yè)- (void)QFTableView:(QFTableView *)fanView scrollToIndex:(NSInteger)index if (index _mainArray.count-1) return; if (_mainArray.count 0 & index -
32、1) LLCMainModel *model = _mainArray objectAtIndex:index; _dateIntroduce.foodNameLabel.text = ; _dateIntroduce.foodPinYinName.text = model.englishName; _pageControl lightPointBeforePage:index; #pragma mark 讀取更多- (void)llcTableViewLoadMoreData if (_isLoading) return; / 加載hud UIView *oldHud =
33、 self.view viewWithTag:kHUD_Tag; if (oldHud != nil) oldHud removeFromSuperview; LLCFacilityHUD *hud = LLCFacilityHUD alloc initWithPosition:self.view.center; hud.tag = kHUD_Tag; self.view addSubview:hud; hud loading; _isLoading = YES; _requestModel.page+; NSString *mainUrlString = NSString stringWit
34、hFormat:kMain_Url, _requestModel.page, _requestModel.user_id; DMPHttpRequest requestWithUrlString:mainUrlString isRefresh:NO delegate:self tag:eMainRequest;#pragma mark - DMP HttpRequest Delegate#pragma mark 數(shù)據(jù)請(qǐng)求完成- (void)dmpHttpRequestDidFinished:(DMPHttpRequest *)request if (request.downloadData)
35、switch (request.tag) case eDateRequest: self loadMainDateData:request.downloadData; _isLoading = NO; break; case eMainRequest: if (_mainArray.count 0) self loadMainData:request.downloadData completion: _pageControl.pageCount = _mainArray.count; _pageControl extinguishPointsAfterPage:_mainArray.count
36、-8; _isLoading = NO; ; else self loadMainData:request.downloadData completion: _isLoading = NO; ; break; case eQRRequest: self getQRResultDataWithDownloadData:request.downloadData; LLCVideoViewController *vVC = LLCVideoViewController alloc init; vVC.currentIndex = 0; vVC loadSingleFoodWithVegetableI
37、D:self.qrResultModel.vegetable_id; self.navigationController pushViewController:vVC animated:YES; LLCFacilityHUD hudSuccessAppearOnView:self.view; break; default: break; #pragma mark 數(shù)據(jù)請(qǐng)求失敗- (void)dmpHttpRequest:(DMPHttpRequest *)request DidFailWithError:(NSError *)error LLCFacilityHUD *hudView = (L
38、LCFacilityHUD *)self.view viewWithTag:kHUD_Tag; if (hudView != nil) hudView failed; _isLoading = NO;#pragma mark - 讀取數(shù)據(jù)#pragma mark 日期數(shù)據(jù)- (void)loadMainDateData:(NSData *)downloadData id result = NSJSONSerialization JSONObjectWithData:downloadData options:NSJSONReadingMutableContainers error:nil; if
39、 (result isKindOfClass:NSDictionary class) NSDictionary *theResults = (NSDictionary *)result; NSArray *datesIntroduce = theResults objectForKey:data; _dateArray addObjectsFromArray: LLCWonderfulModel achieveJSONModelsWithDataAndElementNames:datesIntroduce isNodeNamesEqualToPropertyNames:YES modelCla
40、ssNameAndValueNames:LLCMainDateModel, alertInfoAvoid, alertInfoFitting, LunarCalendar, nil; LLCMainDateModel *model = _dateArray objectAtIndex:0; _dateIntroduce.ddLabel.text = _requestModel.day; _dateIntroduce.yyMMLabel.text = NSString stringWithFormat:%-%, _requestModel.year, _requestModel.month; _
41、dateIntroduce.avoidContent = model.alertInfoAvoid; _dateIntroduce.fittingContent = model.alertInfoFitting; _dateIntroduce.oldDateLabel.text = NSString stringWithFormat:農(nóng)歷%, model.LunarCalendar; _dateIntroduce lanuchContent; #pragma mark 主界面數(shù)據(jù)- (void)loadMainData:(NSData *)downloadData completion:(vo
42、id () (void)completion id result = NSJSONSerialization JSONObjectWithData:downloadData options:NSJSONReadingMutableContainers error:nil; if (result isKindOfClass:NSDictionary class) NSDictionary *theResults = (NSDictionary *)result; NSArray *mainsArray = theResults objectForKey:data; for (NSDictiona
43、ry *aDic in mainsArray) LLCMainModel *model = LLCMainModel alloc init; model setValuesForKeysWithDictionary:aDic; _mainArray addObject:model; if (_mainArray.count 9) LLCMainModel *model = _mainArray objectAtIndex:0; _dateIntroduce.foodNameLabel.text = ; _dateIntroduce.foodPinYinName.text =
44、 model.englishName; if (completion) completion(); LLCFacilityHUD *hud = (LLCFacilityHUD *)self.view viewWithTag:kHUD_Tag; hud successed; _tableView reloadData;#pragma mark - Private#pragma mark 讀取數(shù)據(jù)- (void)loadData NSDate *today = NSDate date; NSDateFormatter *formatter = NSDateFormatter alloc init;
45、 formatter setDateFormat:yyyy-MM-dd; NSString *date = formatter stringFromDate:today; NSArray *datesComponet = date componentsSeparatedByString:-; _requestModel = LLCRequestModel alloc init; _requestModel.year = datesComponet objectAtIndex:0; _requestModel.month = datesComponet objectAtIndex:1; _req
46、uestModel.day = datesComponet objectAtIndex:2; _requestModel.page = 1; NSString *dateUrlString = NSString stringWithFormat: kMainDate_Url, _requestModel.year, _requestModel.month, _requestModel.day; DMPHttpRequest requestWithUrlString:dateUrlString isRefresh:NO delegate:self tag:eDateRequest; NSStri
47、ng *mainUrlString = NSString stringWithFormat:kMain_Url, _requestModel.page, _requestModel.user_id; DMPHttpRequest requestWithUrlString:mainUrlString isRefresh:NO delegate:self tag:eMainRequest;#pragma mark tabbar點(diǎn)擊響應(yīng)- (void) tarBarItemPress:(UIButton *)btn switch (btn.tag) case eTarBarDiseaseDietButton: DMPDietTherapyVC * dietVC = DMPDietTherapy
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課件中國(guó)氣候教學(xué)課件
- 北師大版四下英語(yǔ)教案
- 《麥比烏斯圈》大班科學(xué)教案
- 智能化停車(chē)場(chǎng)建設(shè)項(xiàng)目招投標(biāo)
- 小學(xué)二年級(jí)語(yǔ)文下冊(cè)第四.五.六單元教案
- 養(yǎng)殖業(yè)資格證發(fā)放管理辦法
- 圖書(shū)館吊頂施工合同
- 地鐵站通信信號(hào)系統(tǒng)招投標(biāo)文件
- 災(zāi)害救援:槍支彈藥管理辦法
- 上海市物業(yè)招投標(biāo)策略與技巧
- 登高車(chē)檢查表
- 5陶行知的學(xué)前教育思想課件(42頁(yè)P(yáng)PT)
- 科技論文寫(xiě)作與學(xué)術(shù)規(guī)范PPT通用課件
- 磷酸鐵鋰電池工商業(yè)儲(chǔ)能項(xiàng)目施工組織設(shè)計(jì)方案
- CNAS-CC01:2015 管理體系認(rèn)證機(jī)構(gòu)要求
- 礦山規(guī)模劃分標(biāo)準(zhǔn)
- 北師大版小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)重點(diǎn)練習(xí)試題(全冊(cè))
- 木蘭辭(拼音打印)
- 心血管介入考試器械植入模擬試題卷
- 意愿類(lèi)能愿動(dòng)詞偏誤分析——以“要”、“想”、“敢”、“肯”為例
- 職業(yè)病防治監(jiān)理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論