畢業(yè)設計(論文)-基于IOS開發(fā)的裝修家居APP的設計與實現
《畢業(yè)設計(論文)-基于IOS開發(fā)的裝修家居APP的設計與實現》由會員分享,可在線閱讀,更多相關《畢業(yè)設計(論文)-基于IOS開發(fā)的裝修家居APP的設計與實現(28頁珍藏版)》請在裝配圖網上搜索。
河南科技學院2015 屆本科畢業(yè)設計基于 IOS 開發(fā)的裝修家居 APP 的設計與實現學生姓名: 所在系別: 信 息 工 程 所學專業(yè): 信 息 工 程 導師姓名: 完成時間: 2015 - 5 – 10 基于 IOS 開發(fā)的裝修家居 APP 的設計與實現摘 要隨著科技的發(fā)展,移動智能終端人們的日常生活中扮演著越來越重要的角色?;?iOS 系統(tǒng)的 iPhone 手機因其獨特的設計和極佳的體驗深受用戶歡迎。作為當前最流行的操作平臺,自然也存在著大量的應用服務需求。本課題是為一家裝修公司設計的一款幫助人們可以隨心所欲選擇家居裝修樣式的移動應用。該APP 以 Object-C 語言編寫,以 Xcode 為開發(fā)工具實現的。主要有五大界面:首頁,分類圖片,靈感,關注及設置界面。首頁展示了設計師設計的當今流行的一些裝修樣板;分類界面以空間、風格、局部三種分類方式向用戶詳細介紹各種各樣的裝修方法;靈感界面就是用戶記錄自己的裝修方法,以備以后裝修時使用的界面;關注界面則是自己關注的設計師的最新動態(tài);設置界面可以清空緩存,意見反饋,及 APP 介紹。精 致 優(yōu) 秀 的 設 計 風 格 , 有 多 樣 化 的 選 擇 , 使 用 戶 可 以更 加 賞 心 悅 目 地 體 驗 本 軟 件 的 服 務 。關 鍵 詞 : Objective_c、 HTTP、 MySQL、 家 居DESIGN AND IMPLEMENTATION OFINFORMATION MANAGEMENT SYSTEMS GRADUATESAbstractWith the development of science and technology, mobile intelligent terminal plays an increasingly important role in daily life IPhone mobile phone based on the iOS system because of its unique design and excellent experience by users. As the most popular operating platform, there is also a lot of natural application service needs. This topic is for a decoration company design of a help people can choose home decoration style mobile application. The APP is written in Object-C language, and implemented by Xcode as the development tool There are five major interfaces: home, classification pictures, inspiration, attention and set the interface. Home page shows the designer of today's popular some decoration model; interface classification to space, style, local three classification to users with the various decoration method; interface inspired is users to record their own decoration method, to preparation after the renovation of the use of interface; interface is designers concern themselves with the latest developments; setting interface can empty the cache, feedback, and app. Exquisite and excellent design style, a variety of choices, users can experience more be good to hear or see the service of this software.Keywords: Objective_c, HTTP, MySQL, Household目錄1. 緒論 12. iOS 系統(tǒng)、環(huán)境以及所用技術介紹 .22.1 iOS 系統(tǒng)簡介 .22.3 開發(fā)環(huán)境 .32.4 應用程序框架 .32.5 設計模式 .42.6 第三方庫 53. 功能模塊的設計 .63.1 首頁界面的設計 .63.2 分類界面 .73.3 靈感界面 .73.4 關注界面 .83.5 設置界面 .84. 功能模塊的具體實現 .94.1 各個界面之間的切換 94.2 首頁界面的具體實現邏輯及代碼 .104.3 分類界面 134.4 靈感界面 154.5 關注界面 184.6 設置界面 205. 系統(tǒng)測試 .215.1 測試目的 215.2 測試方法 21小結 23參考文獻 23致謝 2411. 緒論隨著 IOS 的在當今社會流行,人們愈發(fā)體驗到了其所帶來的科技魅力,給我們的生活帶來了越來越多的幫助,讓我們的生活更加的簡單。本課題研究的是設計一款 APP,人們通過這個手機 APP 就能找到自己理想的家居裝修方法,讓自己的居住環(huán)境更加的舒適。如今的移動應用開發(fā)產業(yè)讓人眼花繚亂,主要的移動平臺有:IOS、Android、Nokia Symbian、blackberry、Java ME、windows phone、mobile web。Android 以其開放性,多任務,大功能。畫面流暢,硬件設備優(yōu)良多樣等各種優(yōu)點,占只能機一大部分,然而它也存在著明顯的不足,如:兼容性差,各種機型的配置不一樣,以至于開發(fā)的時候出現各種版本。有些產品華而不實,用戶體驗差。Symbian 主要基于 C 語言的應用開發(fā),支持多線程運行模式,但是開發(fā)代碼量過大給開發(fā)人員造成很大的不便。就目前而言,三大平臺(Android、Symbian、blackberry)的市場占有率也在逐漸下降,IOS 呈現平穩(wěn)上升趨勢。(1)APPstore 的支付模式成熟。不僅僅是這一模式的創(chuàng)新,更重要的人們用蘋果手機只能從蘋果商店下載應用,經過長時間的運營,APPstore 已經形成完備的支付模式,被大部分用戶接受。(2)IOS 是用 object-C 這門語言開發(fā)。從全球的編程語言排行榜來看,雖然object-C 只有蘋果一家公司使用,但是已經排名已經非??壳傲?,可見 IOS 開發(fā)的普及性和歡迎程度,另外,基于 C 語言,運行效率更高計算機網絡通信技術和 Internet 在最近幾年來飛速發(fā)展,基于因特網的手機移動應用逐漸開始成為一種全新的功能需求,并且越來越收到人們的關注。由于移動應用具有簡單性,隨時隨地等諸多優(yōu)點,人們通過一部手機就可以操控一切,它有著傳統(tǒng)計算機無法比擬的優(yōu)點。而人們也在越來越追求更高的物質生活,因此,開發(fā)一個關于裝修家居的移動應用就有必要了,你只需要通過一部手機,就可以看見多種多樣的裝修方式,多樣化的選擇,讓你找到自己心怡的裝修方法。并且你還可以將方法分享給你的朋友,讓更多的人感受到移動應用,這個 APP 給人們帶來的簡便?;?IOS 平臺的裝修軟件已經有很多,經過分析,用戶第一眼往往是一個軟件的外觀,一個好看的界面才能讓用戶以一種愛美之心去嘗試,才能進一步了解一個軟件的好壞,所以吸引眼球的界面是爭取用戶的第一步。因此,界面設計工作對應用程序來說非常重要,在界面上吸引了用戶,才能進一步讓用戶體驗應用程序中的功能,使用這個軟件。因此,開發(fā)一種界面美觀,用起來舒適,并且能給人們帶來巨大作用的軟件非常有必要。房屋裝修設計是個系統(tǒng)工程,并非想像的那么簡單。一般來說,每個人想法都有所不同,對家居的要求不盡相同。但真正能將自己的想法表達到位的,卻少之又少。一個專業(yè)的房屋設計師,首先會充分了解裝修業(yè)主的個性化需求,結合自己的專業(yè)知識、生活閱歷,將裝修業(yè)主理想中的家居通過設計圖紙表現出來。其次,專業(yè)的設計師會利用自己對建材材料的了解,在設計時進行合理搭配,施工時推薦最佳材質。說簡單些,就是利用設計元素,突出家居中的某幾個亮點即可達到裝修最佳效果,而不必堆砌過多的裝修材料,可以為裝修業(yè)主節(jié)省許多不必要的花費。第三,專業(yè)的設計師可以利用自己所累積的社會資源,為裝修業(yè)主拿到單個消費者所拿不到材料價格,從而為業(yè)主節(jié)省許多金錢。隨著蘋果產品的不斷推陳出新,相應的各類應用開發(fā)也越來越火爆。目前,2IOS 在智能手機應用下載量中占比 33%,IOS 平板電腦應用下載量占比 75%,由此可見,IOS 相關應用軟件有著龐大的消費眾群。而產品的升級換代,新產品的開發(fā),都離不開手機軟件開發(fā)團隊強有力的支持?,F在各大企業(yè)都在積極擴充研發(fā)隊伍,像是游戲軟件開發(fā)的崗位缺口就非常大。其 8-10 萬的年薪,讓很多年輕人加入到學習 IOS 開發(fā)的隊伍中。 據對在讀學習人群統(tǒng)計,目前大部分學員來自應屆的大學生。眾所周知,現在大學生就業(yè)難,薪水低。而學習 IOS 開發(fā),不但可以掌握最新的技術,還可以找到薪水福利不錯的工作,未來也有很大的發(fā)揮空間。另一部分人群,則是 IOS相關從業(yè)人員,隨著技術的日新月異,希望能通過短時間集中培訓,使技能得到提升,更好的應用到實際工作中。而目前關于裝修的 App 少之又少,而人們又迫切需要這樣一款軟件,所以這樣的軟件具有很大的前景。 2. iOS 系統(tǒng)、環(huán)境以及所用技術介紹iOS 開發(fā)是以 xcode 為開發(fā)工具, OC 為編程語言開發(fā)的,是開發(fā)蘋果移動設備應用的簡稱。2.1 iOS 系統(tǒng)簡介iOS 是 iPad、iPhone、iPod touch 和 Apple TV 的操作系統(tǒng)。是由蘋果公司開發(fā)的移動操作系統(tǒng) 。蘋果公司最早于 2007 年 1 月 9 日的 Macworld 大會上公布這個系統(tǒng),最初是設計給 iPhone 使用的,后來陸續(xù)套用到 iPod touch、iPad以及 Apple TV 等產品上。iOS 與蘋果的 Mac OS X 操作系統(tǒng)一樣,它也是以Darwin 為基礎的,因此屬于類 Unix 的商業(yè)操作系統(tǒng)。原本這個系統(tǒng)名為iPhone OS,因為 iPad,iPhone,iPod touch 都使用 iPhone OS,所以 2010WWDC大會上宣布改名為 iOS。iOS 具有簡單的界面、令人驚嘆的功能,以及超強的穩(wěn)定性,已經成為 iPhone、iPad 和 iPod touch 的強大基礎。盡管其他競爭對手一直努力地追趕, iOS 內置的眾多技術和功能讓設備始終保持著遙遙領先的地位。 Objective-C,通常寫作ObjC和較少用的Objective C或Obj-C,是擴充C的面向對象編程語言。Objective-C是非常實際的語言。它是一個用C寫成、很小的運行庫,只會令應用程序的尺寸增加很小,和大部分OO系統(tǒng)使用極大的VM執(zhí)行時間會取代了整個系統(tǒng)的運作相反。Objective-C寫成的程序通常不會比其原始碼大很多。而其函式庫(通常沒附在軟件發(fā)行本)亦和Smalltalk系統(tǒng)要使用極大的內存來開啟一個窗口的情況相反。因此,Objective-C它完全兼容標準 C語言(C++對C語言的兼容僅在于大部分語法上,而在ABI(Applicat ion Binary Interface)上,還需要使用extern “C“這種顯式聲明來與C函數進行兼容),而在此基礎上增加了面向對象編程語言特性以及Smalltalk消息機制。和C++不同,Objective-C不支持運算子重載(它不支持ad-hoc多型)。亦與C++不同,但和Java相同,Objective-C只容許對象繼承一個類別(不設多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點,例如額外執(zhí)行時間過重和二進制不兼容。32.3 開發(fā)環(huán)境(1).Xcode 開發(fā)工具我們要掌握一門編程語言的話,都必須使用相應的開發(fā)工具進行學習和調試,比如用 eclipse 學習 Java。至于 Objective-C,我們可以使用蘋果公司提供的開發(fā)工具---Xcode(2) Mac OS XXcode沒有Windows版本的,只有Mac版本的,也就是只能跑在Mac OS X系統(tǒng)上。 因此,你要先擁有Mac OS X系統(tǒng)才能使用Xcode進行Objective-C的學習和iOS開發(fā) 。Mac OS X 是蘋果公司為 Mac 系列產品開發(fā)的專屬操作系統(tǒng),目前搭載這款操作系統(tǒng)的設備有:MacBook、iMac、Mac mini。大概有 3 種途徑可以獲取 Mac OS X 系統(tǒng):虛擬機、黑蘋果、購買蘋果設備。(3) 調試設備Xcode 自帶了 iOS 模擬器功能,因此我們可以將開發(fā)好的應用程序,運行到模擬器上進行測試,不一定要買 iPhone\iPad 進行調試。當然,真機和模擬器肯定是區(qū)別的,因此在發(fā)布應用程序之前肯定要進行真機測試。(4) 開發(fā)者證書如果你是想把開發(fā)好的 iOS 程序發(fā)布到 App Store 上去賣,或者把程序運行到真機(iPhone\iPad)上,那么就必須有 iOS 個人開發(fā)者證書。這個需要向蘋果買,一年 99$。如果純粹是學習,不用買這個證書,一切開發(fā)都是免費的。2.4 應用程序框架應用程序主要包括以下幾大框架:Foundation、UIKit 、Core Data 、 Core Graphics、 Core Animation 等幾大框架。在你開發(fā)程序時,主要使用框架就是 Foundation 和 UIKit,因為它們包你需要的大部分東西,你的應用程序,UIKit 和其它的框架都是建立在 Foundation框架上Foundation 框架是用 Object-C 對 Core Foundation 框架里許多特性的封裝。使用Foundation可以:? 創(chuàng)建和管理集合,比如數組和字典? 訪問存儲在應用程序里的圖片和其它資源? 創(chuàng)建和管理字符串? 提交和接收通知? 創(chuàng)建日期和時間對象? 自動發(fā)現IP網絡上的設備? 操作URL流所有的iOS應用程序都基于UIKit,你不能是應用程序脫離這個框架。UIKit提供了在屏幕上繪制的機制,捕獲事件,和創(chuàng)建通用用戶界面元素。UIKit也通過管理顯示在屏幕上的組件來組織復雜的項目。使用UIKit可以:4? 構建和管理你的用戶界面? 捕獲觸摸和基于移動的事件? 呈現文字和web內容? 優(yōu)化你的多任務程序? 創(chuàng)建定制的用戶界面元素Core Data , Core Graphics, Core Animation,和 OpenGLES 框架都是高級的技術。所以這些框架對于你開發(fā)應用程序也是很重要的,它們都需要時間去學習和掌握。Core Data 框架管著理應用程序數據模型,提供的內建 SQLlite 技術可以高效的管理數據。Core Graphics 框架幫助你創(chuàng)建圖形Core Animation 允許你創(chuàng)建高級的動畫和虛擬效果OpenGL ES 框架提供 2D 和 3D 繪圖工具2.5 設計模式(一)代理模式應用場景:當一個類的某些功能需要由別的類來實現,但是又不確定具體會是哪個類實現。優(yōu)勢:解耦合敏捷原則:開放-封閉原則實例:tableview的 數據源delegate,通過和protocol的配合,完成委托訴求。列表row個數delegate自定義的delegate(二)觀察者模式應用場景:一般為model層對,controller和view進行的通知方式,不關心誰去接收,只負責發(fā)布信息。優(yōu)勢:解耦合敏捷原則:接口隔離原則,開放-封閉原則實例:Notification通知中心,注冊通知中心,任何位置可以發(fā)送消息,注冊觀察者的對象可以接收。kvo,鍵值對改變通知的觀察者,平時基本沒用過。(三)MVC模式應用場景:是一中非常古老的設計模式,通過數據模型,控制器邏輯,視圖展示將應用程序進行邏輯劃分。優(yōu)勢:使系統(tǒng),層次清晰,職責分明,易于維護敏捷原則:對擴展開放-對修改封閉實例:model-即數據模型,view-視圖展示,controller進行UI展現和數據交互的邏輯控制。(四)單例模式5應用場景:確保程序運行期某個類,只有一份實例,用于進行資源共享控制。優(yōu)勢:使用簡單,延時求值,易于跨模塊敏捷原則:單一職責原則實例:[UIApplication sharedApplication]。注意事項:確保使用者只能通過 getInstance方法才能獲得,單例類的唯一實例。java,C++中使其沒有公有構造函數,私有化并覆蓋其構造函數。object c中,重寫allocWithZone方法,保證即使用戶用 alloc方法直接創(chuàng)建單例類的實例,返回的也只是此單例類的唯一靜態(tài)變量。(五)策略模式應用場景:定義算法族,封裝起來,使他們之間可以相互替換。優(yōu)勢:使算法的變化獨立于使用算法的用戶敏捷原則:接口隔離原則;多用組合,少用繼承;針對接口編程,而非實現。實例:排序算法,NSArray的sortedArrayUsingSelector;經典的鴨子會叫,會飛案例。注意事項:1,剝離類中易于變化的行為,通過組合的方式嵌入抽象基類2,變化的行為抽象基類為,所有可變變化的父類3,用戶類的最終實例,通過注入行為實例的方式,設定易變行為防止了繼承行為方式,導致無關行為污染子類。完成了策略封裝和可替換性。(六)工廠模式應用場景:工廠方式創(chuàng)建類的實例,多與proxy模式配合,創(chuàng)建可替換代理類。優(yōu)勢:易于替換,面向抽象編程,application只與抽象工廠和易變類的共性抽象類發(fā)生調用關系。敏捷原則:DIP依賴倒置原則實例:項目部署環(huán)境中依賴多個不同類型的數據庫時,需要使用工廠配合proxy完成易用性替換注意事項:項目初期,軟件結構和需求都沒有穩(wěn)定下來時,不建議使用此模式,因為其劣勢也很明顯,增 加了代碼的復雜度,增加了調用層次,增加了內存負擔。所以要注意防止模式的濫用。2.6 第三方庫圖片異步加載:SDWebImage網絡通信庫AFNetworkingMKNetworkKitASIHTTPRequest6網絡狀態(tài)檢查:ReachabilityJSON:SBJSONJSONKitXML:TouchXMLSQLite:FMDB下拉刷新:MJRefreshSVPullToRefresh提示框:MBProgressHUD3. 功能模塊的設計這個 App 由首頁,分類圖片,靈感,關注,設置,及個人信息六個界面組成,每個界面展示的都有明確的信息,讓我們有多樣化的選擇。3.1 首頁界面的設計首頁由兩部分組成,上方由是一個滾動視圖,能夠無限滾動,并且能夠用手滑動,下方是一個列表,也能夠滑動。首頁展示的是裝修后的家居圖片,并且每張圖片都有相應的文字作簡單的介紹。每張圖片都是能點擊的,點進去是詳情,詳細介紹了如何裝修,及這樣裝修的好處,圖片也能都標記為喜歡,并收集。設計流程見圖 3-1:圖 3-1 首頁設計流程首頁滾動視圖列表視圖圖片詳情已登錄未登錄編輯操作登錄界面73.2 分類界面這個界面通過分類來快速找到你想要的,房間哪個部分的裝修圖片。分為三大類:空間、局部、風格。每個大類里面又分為許多小類,客廳、衣帽間,餐廳、廚房、衛(wèi)生間等等。點擊不同的分類,我們能夠進入到不同的裝修圖片展示界面。圖片展示界面是一個列表,圖片能夠放大查看,并且也能夠進行標記。設計流程見圖 3-2:圖 3-2 分類界面設計流程3.3 靈感界面在這個界面上我們可以創(chuàng)建格子,能給格子命名,并給格子配上自己喜歡的圖片,能夠進行重命名,刪除等一些編輯操作。創(chuàng)建自己喜歡的裝修方法,即靈感。在這個界面我們也能看到自己標注過的喜歡的圖片,也能顯示有多少人喜歡了這種裝修方法,圖片點進去是裝修方法的詳情,并且能夠編輯,進行一些刪除等操作。設計流程見圖 3-3:分類空間風格局部客廳、餐廳、廚房等現代、中式、日式等吊頂、陽臺、樓梯等圖片詳情編輯操作靈感靈感喜歡創(chuàng)建格子命名更換圖片刪除圖片取消喜歡查看詳情8圖 3-3 靈感界面設計流程3.4 關注界面每一種裝修方法作品都有相應的作者,如果我們關注了這個作者,那么我們在這個界面就能看到這個作者所有的作品,作品點進去也是詳情界面,每張圖片也能夠標記為喜歡。并且,在這個界面,也能夠看見別人使用這個 APP 的動態(tài),有哪些人喜歡了哪些作品,看別人的裝修習慣是什么樣的。設計流程見圖 3-4:圖 3-4 關注界面設計流程3.5 設置界面這個界面顯示自己的頭像,昵稱。在這個界面我們可以清空緩存,關于這個APP 的介紹,以及意見反饋,退出登錄。設計流程見圖 3-5:關注熱門關注列表試圖列表試圖圖片詳情編輯操作設置頭像昵稱清空緩存給我評分意見反饋關于退出登錄9圖 3-5 設置界面設計流程4. 功能模塊的具體實現見每個界面的具體實現根據設計圖來做,包括各個界面之間的切換和每個界面的具體介紹及代碼編寫。4.1 各個界面之間的切換各個界面之間通過側邊欄來進行切換,點擊相應的按鈕可以進入到相應的界面,上圖即為效果圖,側邊欄用到了 ZYMenuController 這個第三方框架,將ZYMenuController 的對象作為 window 的根視圖,代碼實現為:ZYFirstViewController * firstViewController = [[[ZYFirstViewController alloc] init]autorelease];UINavigationController * nav = [[[UINavigationController alloc] initWithRootViewController:firstViewController] autorelease];ZYMenuController * menu = [[ZYMenuController alloc] initWithRootViewController:nav leftViewController:leftViewController rightViewController:nil];self.window.rootViewController = menu;[self.window makeKeyAndVisible];視圖使用 tableView 寫的,能夠滑動,增強了用戶的體驗_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 120, self.view.frame.size.width, self.view.frame.size.height - 150)];_tableView.delegate = self;_tableView.dataSource = self;_tableView.backgroundColor = [UIColor clearColor];_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;[self.view addSubview:_tableView];[_tableView release];實際測試效果圖見圖 4-1:10圖 4-1 界面切換效果4.2 首頁界面的具體實現邏輯及代碼(1)首頁界面首頁上方是一個能夠無限循環(huán)滾動的滾動視圖,用的 scrollView 實現,將button 加到 scrollView 上面,可點擊,并也能夠用手滑動。下方用 tableView實現,是一個列表視圖。將上方的 scrollView 和下方的 tableView 放到一個大的 scrollView 上面,實現整個界面都能夠滑動。tableView 是自定義的,能夠滿足設計的需求。代碼實現為://創(chuàng)建大scrollView_bigScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0,0, 320, self.view.frame.size.height)];_bigScrollView.delegate = self;[self.view addSubview:_bigScrollView];//屏幕上方的小scrollView[HttpEngine getAdvertisingRequestWithCompletionBlock:^(NSMutableArray *array) {self.scrollDataArray = array;_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 160)];// _scrollView.backgroundColor = [UIColor redColor];_scrollView.delegate = self;11_scrollView.pagingEnabled = YES;_scrollView.contentSize = CGSizeMake(self.view.frame.size.width*self.scrollDataArray.count, 170);[_bigScrollView addSubview:_scrollView];實際測試效果圖見圖 4-2-1:圖 4-2-1 首頁效果(2)詳情界面 詳情界面主要使用自定義 tableView 實現,第一區(qū)顯示的是大標題和作者的頭像、昵稱及時間。第二區(qū)顯示的 簡介,是對這個裝修方法的簡單介紹,并且這個高度要根據文字的多少自適應高度。第三區(qū)顯示的是圖片,即裝修后的效果圖。代碼實現為:-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@“Cell“];if(cell == nil){12cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@“Cell“];UIImageView * imageView = [[UIImageView alloc] init];imageView.tag = 1;[cell addSubview:imageView];[imageView release];}}//根據文字多少算高度- (float)stringHeightWithString:(NSString *)string{// 計算文字寬高float height = [string boundingRectWithSize:CGSizeMake(270, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil].size.height;// 向上取整return ceilf(height);}實際測試效果圖見圖 4-2-2:圖 4-2-2 詳情界面效果134.3 分類界面從這個界面里能通過具體的分類來找到自己需要的裝修設計圖,并且能將這些裝修圖片能夠標記為喜歡。(1) 分類首頁這個頁面總共分為三個大區(qū),即空間、局部、風格。自己想看什么樣的效果可從分類界面里面詳細的選擇,每一種都有不同的風格,讓你有多樣化的選擇。通過自定義 tableView 實現。隱藏了系統(tǒng)自帶的分割線,自己實現分割線這個功能。圖片和文字放到一個數組里面,作為 tableView 的數據源數組-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@“Cell“];if(cell == nil){cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@“Cell“] autorelease];//自定義imageView與label,否則圖片太大UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 8, 30, 30)];imageView.tag = 1;[cell addSubview:imageView];[imageView release];UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(50, 5, 100, 30)];label.tag = 2;[cell addSubview:label];[label release];}UIImageView * imageView = (UIImageView *)[cell viewWithTag:1];UILabel * label = (UILabel *)[cell viewWithTag:2];label.text = self.textArray[indexPath.section][indexPath.row];imageView.image = [UIImage imageNamed:self.imageArray[indexPath.section][indexPath.row]];cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;return cell;}實際測試效果圖見圖 4-3-1:14圖 4-3-1 分類首頁效果(2)分類圖片界面通過兩豎排的圖片更為直觀的來展示各種各樣的裝修樣式。從服務器獲得數據后,將數據分為兩個數組,每一個數組作為每一豎排的數據源數組,自定義tableView 實現。[HttpEngine getClassImageRequsetWithCategoryId:self.cate TagId:self.tag CompletionBlock:^(NSMutableArray *array) {self.dataArray = array;// NSLog(@“%@“,self.dataArray);//將self.dataArray分到兩個數組中,分別為cell上兩個button的圖片數據網址for(int i=0;iself.dataArray.count;i++){if(i%2==0){[self.button1DataArray addObject:self.dataArray[i]];}else{[self.button2DataArray addObject:self.dataArray[i]];}}_tableView =[[UITableView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64)];15_tableView.delegate = self;_tableView.dataSource = self;[self.view addSubview:_tableView];[_tableView release];}];return cell;}實際測試效果圖見圖 4-3-2:圖 4-3-2 分類圖片界面效果4.4 靈感界面這個界面包括靈感和喜歡兩個界面,靈感喜歡界面能夠將自己靈感展示出來,喜歡界面能夠看到自己已經標記為喜歡的圖片(1) 靈感界面靈感界面展示的是自己創(chuàng)作的一些靈感,點擊第一個方框即可以創(chuàng)建格子,將自己喜歡的裝修圖片放到格子上面。靈感和喜歡這兩個界面的實現共用的時同16一個試圖控制器,點擊上面的按鈕時,現將原有的視圖移除,再將將要顯示的視圖添加到視圖控制器上,從而實現這樣的效果_seg = [[UISegmentedControl alloc] initWithItems:segArray];[_seg addTarget:self action:@selector(segClick:) forControlEvents:UIControlEventValueChanged];_seg.selectedSegmentIndex = 0;_seg.tintColor = [UIColor redColor];self.navigationItem.titleView = _seg;self.viewController = [[ZYGeziViewController alloc] init];[self.view addSubview:self.viewController.view];-(void)segClick:(UISegmentedControl *)seg{if(seg.selectedSegmentIndex == 0){for(UIView * view in self.view.subviews){[view removeFromSuperview];}self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(itemClick)];self.viewController = [[ZYGeziViewController alloc] init];[self.view addSubview:self.viewController.view];}else{self.viewController = [[ZYLikeViewController alloc] init];[self.view addSubview:self.viewController.view];self.navigationItem.rightBarButtonItem = nil;}}實際測試效果圖見圖 4-4-1:17圖 4-4-1 靈感界面效果(2)喜歡界面在這個界面我們能看到自己所喜歡的裝修樣式圖片,以及共有多少人喜歡了這個裝修樣式,并且能夠編輯,即刪除。這個界面通過自定義 tableview 實現:-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@“Cell“];if(cell == nil){cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@“Cell“] autorelease];// UIImageView * imageView2 = [[UIImageView alloc] initWithFrame:CGRectMake(10, imageView.frame.size.height, 60, 25)];// imageView2.tag = 3;18// imageView2.image = [UIImage imageNamed:@“v110_04Class_liked_b.png“];// [cell addSubview:imageView2];}ZYLikedPicList * picList = self.dataArray[indexPath.row];NSLog(@“%f“,picList.picId);UIImageView * imageView = (UIImageView *)[cell viewWithTag:1];UILabel * label = (UILabel *)[cell viewWithTag:2];ZYCustonButton * button = (ZYCustonButton *)[cell viewWithTag:3];button.tag = picList.picId;[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];[button setBackgroundImage:[UIImage imageNamed:@“v110_04Class_liked_b.png“] forState:UIControlStateNormal];[imageView setImageWithURL:[NSURL URLWithString:picList.picUrl] placeholderImage:[UIImage imageNamed:@“v1_de_nopic@2x.png“]];label.text = [NSString stringWithFormat:@“%d 人喜歡了“,(int)picList.likeTimes];return cell;}實際測試效果圖見圖 4-4-2:圖 4-4-2 喜歡界面效果4.5 關注界面這個界面能過獲得不同的人使用這個 APP 的實時動態(tài),比如某個人關注了某19個裝修方法圖片,通過這個界面我們就能看到這個人得昵稱、頭像及裝修的圖片。這個界面的實現原理和靈感界面大體相似。不過使用的同一個控制器,不同的界面上刷新不同的數據,也是通過自定義 tableview 實現的[_tableView addPullToRefreshWithActionHandler:^{NSLog(@“下拉刷新“);currentIndex = 0;[self requestData];}];[_tableView addInfiniteScrollingWithActionHandler:^{NSLog(@“上拉加載“);currentIndex ++;[self requestData];}];//首次進入刷新狀態(tài)[_tableView triggerPullToRefresh];-(void)requestData{if(_seg.selectedSegmentIndex == 0){NSLog(@“qqq“);[HttpEngine getHotInfoRequestWithpage:(currentIndex+1) CompletionBlock:^(NSMutableArray *array){if (currentIndex == 0){[self.dataArray removeAllObjects];}[self.dataArray addObjectsFromArray:array];// NSLog(@“%d %d“,self.dataArray.count,array.count);[_tableView reloadData];}];}}實際測試效果圖見圖 4-5-1:20圖 4-5-1 關注界面效果4.6 設置界面這個界面展示了用戶的頭像,昵稱,還有一些 APP 的常用功能,即清空緩存,版本檢測,評分,關于 APP 等。通過自定義 tableview 實現。-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{if(indexPath.section ==0){ZYPersonViewController * personController = [[ZYPersonViewController alloc] init];personController.personInfo = self.personInfo;[self.navigationController pushViewController:personController animated:YES];[personController release];}if(indexPath.section == 2){if(indexPath.row==2){21ZYPingeViewController * viewController = [[ZYPingeViewController alloc] init];[self.navigationController pushViewController:viewController animated:YES];}}}實際測試效果圖見圖 4-6-1圖 4-6-1 設置界面效果5. 系統(tǒng)測試5.1 測試目的在項目完成后進行系統(tǒng)測試,可以保證所開發(fā)應用的流暢性、無措性、滿足需求性。系統(tǒng)測試是針對整個產品系統(tǒng)進行的測試,過程中發(fā)現問題之后,需要開發(fā)人們找出錯誤原因和位置并改正。也不僅僅是為了發(fā)現系統(tǒng)缺陷和錯誤,也是為了對系統(tǒng)整體質量水平進行度量和評估。在開發(fā)軟件系統(tǒng)的過程中,可能需要面對許多復雜繁瑣的問題,在軟件開發(fā)生存周期的每個階段都會不可避免的產生錯誤。開發(fā)人員要在每個階段完成之前進行嚴格的技術審查,盡可能早的發(fā)現并糾正錯誤,以達到晚上的效果。225.2 測試方法測試程序運用最多就是所謂的白盒測試和黑盒測試了。白盒測試就是對軟件系統(tǒng)的相關代碼進行詳細的測試,查看代碼的正確性和書寫規(guī)則是否正確等。黑盒測試是根據軟件的規(guī)格進行的測試,黑盒測試和白盒測試正好相反,不需要考慮軟件內部的組成結構,只需要對軟件整體進行測試。黑盒測試需要軟件測試人員從用戶的角度來進行各項功能測試,來檢測系統(tǒng)的可行性和可操作性,同時觀察軟件中存在的各種錯誤和缺陷。黑盒測試的方法使測試人員只關心系統(tǒng)是否能夠滿足用戶的需求以及各種需求是如何實現的,并不關心系統(tǒng)的設計過程。對于本 APP 的測試,主要從以下幾個方面進行:(1)代碼測試:這款裝修家居 APP 的代碼測試采用的是正常數據、異常數據和錯誤數據輪換進行測試的方法。例如:在意見反饋界面輸入正確的文字、輸入很大量的文字、或將圖片當成內容添加到輸入框里,查看程序的運行情況。經檢測,代碼的正確性和書寫規(guī)范都符合要求,達到了預期的效果。(2)程序功能測試:對這款 APP 進行大量的相同內容的操作,禁行基本功能的體驗,查看是否完成了基本功能。經過測試,本 APP 的基本功能運行正常,符合項目的設計需求。(3)分調和總調結合測試:該測試時貫穿于整個系統(tǒng)測試思想中的,從開始涉及每一個功能模塊開始,到最終完成系統(tǒng)的整體功能模塊設計,整個過程中,針對每個功能模塊進行適當的測試與修改,最后再將所有功能模塊集成在整個系統(tǒng)中進行綜合測試。23小結本 APP 采 用 OC 語 言 編 寫 , 以 Xcode 為 開 發(fā) 工 具 , 遵 循 Http 通 信 協(xié) 議 ,采 用 MVC 設 計 模 式 設 計 實 現 的 。這 個 APP 的 功 能 基 本 滿 足 了 用 戶 的 所 有 需 求 , 但 是 還 有 一 些 不 完 善 的 地方 , 比 如 這 個 APP 沒 有 推 送 功 能 , 無 法 增 強 用 戶 的 粘 合 性 ; 分 類 界 面 用 戶 無法 通 過 搜 索 功 能 來 搜 索 自 己 想 要 的 裝 修 方 式 , 所 以 后 期 還 需 要 做 很 多 的 工 作來 完 善 這 個 應 用 。 這 個 APP 的 實 現 不 僅 僅 是 對 自 己 的 學 習 成 果 的 檢 驗 , 更 是最 自 己 的 一 個 提 升 。 有 很 多 功 能 只 有 自 己 親 身 實 現 出 來 才 能 更 好 理 解 這 個 知識 , 讓 自 己 的 能 力 得 到 提 升 。 比 如 在 詳 情 界 面 中 , 有 兩 種 表 , 一 種 是 文 字 性的 , 一 種 是 圖 片 性 的 , 當 重 用 這 兩 種 表 時 怎 么 區(qū) 分 就 不 清 楚 了 。 因 此 , 還 要多 加 練 習 才 能 彌 補 自 己 在 動 手 能 力 上 的 缺 陷 , 更 加 完 善 自 己 的 程 序 功 能 。參考文獻[1] Apple Developer,Apple 文檔。[2] 張亦航,iOS 開發(fā)系列之 C/Objective-C 語言基礎,北京:北京人民出版社,2011[3] [美 ]stephenG.Kochan. Programming in Objective-C 2.0[M] ,北京:機械工業(yè)出版社 2010[4] [美]Aaron Hillegas. 蘋果開發(fā)之 Cocoa 編程[M] ,北京:電子工業(yè)出版社.2014[5] 曾源.IOS 編程實戰(zhàn)寶典[M],北京:清華大學出版社 2014[6] 高俊峰.循序漸進服務器基本知識[M],北京:機械工業(yè)出版社 201324致謝從畢業(yè)設計的選題、任務書的書寫、畢業(yè)設計階段到畢業(yè)論文的完成,這長達半年的時間里,使我對系統(tǒng)開發(fā)的整個流程有了更深刻的認識,對本專業(yè)的基本理論、專業(yè)知識和基本技術進行了梳理,并有了更深入的了解,使我在四年中所學到的知識得到了升華,真正達到了學以致用。歲月如梭,如歌。轉眼間,四年的大學求學生活即將結束,站在畢業(yè)的門檻上,回首往昔,奮斗和辛勞成為絲絲的記憶,甜美與歡笑也都塵埃落定。河南科技學院以其優(yōu)良的學習風氣、嚴謹的科研氛圍教我求學,以其博大包容的情懷胸襟、浪漫充實的校園生活育我成人。值此畢業(yè)論文完成之際,我謹向所有關心、愛護、幫助我的人們表示最誠摯的感謝與最美好的祝愿。本次畢業(yè)設計是在洪新華老師指導下完成的。在設計過程中,洪老師仔細耐心地對我的畢業(yè)設計任務及內容進行及時指導,并在最后對成果系統(tǒng)的設計說明書做出了全面、合理、仔細得修改批注,竭盡全力幫助我完成本次的畢業(yè)設計任務。在這里,忠心表示對洪老師的悉心關懷和耐心指導的無限感謝與感恩。更重要的是,在設計的過程,洪老師所具備的嚴謹求真為學的務實精神,也是我之后無論是在學習還是在工作中的學習榜樣。最后,我要衷心感謝各位老師和同學們在我的設計過程中給予我的極大幫助使我能夠及時、順利地完成此次的畢業(yè)設計。最后再一次在這里也對所有教過我的老師們表示衷心的感謝- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 畢業(yè)設計 論文 基于 IOS 開發(fā) 裝修 家居 APP 設計 實現
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-442523.html