基于蘋果系統(tǒng)的掌上購物APP開發(fā)_第1頁
基于蘋果系統(tǒng)的掌上購物APP開發(fā)_第2頁
基于蘋果系統(tǒng)的掌上購物APP開發(fā)_第3頁
基于蘋果系統(tǒng)的掌上購物APP開發(fā)_第4頁
基于蘋果系統(tǒng)的掌上購物APP開發(fā)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州大學畢業(yè)論文題 目: 基于蘋果系統(tǒng)的掌上購物APP開發(fā) 指導教師: 苗同臣 職稱: 教授 學生姓名: 明恩泉 學號: 20127720237 專 業(yè): 計算機科學與技術(計算機輔助設計) 院(系): 軟件學院 完成時間: 2016-5-30 2016年 5 月 30 日鄭州大學軟件學院2016屆畢業(yè)論文目 錄摘 要IAbstractII第1章 前言11.1蘋果手機在中國的發(fā)展歷史11.2 購物APP架設計開發(fā)的現實意義11.3國內外研究狀況2第2章 購物APP開發(fā)技術簡介42.1 Object-C簡介42.2 iOS系統(tǒng)簡介42.3 應用程序框架簡介52.4 開發(fā)工具簡介62.5 項目可行

2、性分析6第3章 購物APP詳細模塊設計83.1 發(fā)現頁83.2 品牌頁153.3 品牌館18總 結22致 謝23參考文獻24鄭州大學軟件學院2016屆畢業(yè)論文摘 要 項目的實現用到的工具是Xcode,用到的語言是Object-C語言,項目中使用的控件是UI控件。項目實現過程需要網絡數據的抓包,數據單例的封裝,數據鏈接的整合分類以及整個實現頁面的框架搭建。項目的具體實現是發(fā)現頁、品牌頁、品牌館三個主頁面的展示,我們通過設置UITabBar的item來確定這些主頁面。之后就是每個頁面的圖片展示,我們用UItableView和UICollectionView來實現表格式圖和集合視圖的圖片布局,布局中

3、用到xib的定制,完成頁面的展示之后,給每個圖片添加點擊事件和tag值的標記,并用bloc回調的方式獲取傳來的數據并推出另一個視圖控制器就可以實現圖片點擊的詳情頁面。整個項目基本實現后,我還需加強對表格視圖和集合視圖控件的熟練運用,因為cell的復用還是一個容易出錯的地方,其次,獲取數據block回調過程中要測試下回調的值是否存在。最后,要想做出更出色的項目還需要多加學習和借鑒他人的思想。關鍵詞:購物,UITableView,UICollectionViewAbstractThe tools used to achieve the project is Xcode, used language

4、 is Object-C language, the controls used in the project is the UI controls.Project implementation process requires capture network data frame packages, data link data classification and integration of a single example of realization of the entire page structures.Implementation of the project is to f

5、ind pages, brand pages, brand Pavilion three main page, we determined the main page by setting UITabBar the item. After each page is a picture show, and we UItableView UICollectionView to achieve image tabular view and a layout view of the collection, after custom layout used xib complete display of

6、 the page, add a click event to each picture and tag values mark, and to obtain data from the bloc with the callback mode and launched another view controller can achieve the picture click on the details page.After the basic realization of the whole project, I need to strengthen the table view and t

7、he view of the collection controls proficient, because cell multiplexing or a place prone to error, and secondly, to obtain data block callback procedure to be tested under the callback value exists. Finally, in order to make a better project also need to pay more to learn from other people's th

8、inking.Keywords: shopping, UITableView, UICollectionViewII鄭州大學軟件學院2016屆畢業(yè)論文第1章 前言1.1蘋果手機在中國的發(fā)展歷史 在2007年1月份在美國誕生了第一臺iPhone手機,當時的售價在五百美元,雖然iPhone剛剛出世,但以它獨有的簡約風格任然吸引了不少的消費者前來購買,可謂當時的iPhone是供不應求,人們寧愿多排隊你分鐘也要購買一來iPhone手機。在iPhone手機剛出來的時候也就是美國的人民熱血比較高漲,因為在這個時候像中國的其他國家并沒有將蘋果手機大量引入中國市場,雖然有一部分,但是相對其他中國用戶用的安卓手

9、機相比價格還是昂貴了些。在2008年6月份,蘋果公司又發(fā)布了第二代的蘋果手機也就是iPhone 3G,這一年的發(fā)售并沒有包括中國市場。當然第二代蘋果的出現也并不是那么完美,它仍然存在這性能的缺陷,但盡管如此還是有很多人熱愛這款手機,它的銷量也是在三天時間就突破八萬,所以能夠看出,蘋果手機還的出現還是值得我們去關注的。在2008年10月份,第二代蘋果手機iPhone3G還是在中國問世了,當然了,價格方面還是一個非常讓人頭疼的問題,但是在中國買一部蘋果二代就要花掉人民幣五千,可以說不是想買就舍得買的。在2010年6月份,蘋果公司又發(fā)布了iPhone4的誕生。相對于前兩代蘋果相比,iPhone4的出

10、現可謂是震驚世界,iPhone4不同于前兩代的蘋果,它在設計方面和功能方面有了質的飛躍。在我們印象中,拿到的手機及時是一款只能手機也有很多的按鍵,但iPhone4只提供了一個Home鍵及側邊音量鍵,而且機身非常簡約,看起來就很有美感。在iPhone4誕生三天的時間銷量就突破170萬。隨著蘋果手機的熱銷,慢慢的就開始進入了中國市場,在同年九月份,蘋果手機在中國內地正是發(fā)售,當時發(fā)售的只有16G和32G的裸機,并且售價為4999和5999人民幣。在2011年10月4號,也就是喬布斯逝世的前一天,蘋果公司發(fā)布了新一代蘋果-iPhone4s。在2012年9月份,蘋果公司正式發(fā)布其新一代產品 iPhon

11、e5。并將尺寸變?yōu)?.5英寸。在2013年9月份,蘋果發(fā)布了另外兩種iPhone手機,分別是iPhone5C和iPhone5S,因為在之前,蘋果發(fā)布手機都是在內地和其他國家進行銷售,而中國并未考慮在內,但iPhone5s的出現,蘋果公司將市場也指向了中國,并且在一周內銷量達到九百萬臺,可以看的出在中國市場給蘋果帶來了足夠的銷量。2014年第三財季顯示,iPhone在中國市場的銷量增長48%。在2015到2016年間,iPhone6、iPhone6s以及iPhone6Plus等相繼出現,更是引領了中國手機的潮流。我們可以發(fā)現,從之前山寨機到安卓機的現狀到每人用來一臺蘋果手機已經漸漸成為了蘋果在中

12、國市場的發(fā)展趨勢1。1.2 購物APP架設計開發(fā)的現實意義社會的進步自然促進了人們生活水平的提高,人們不再只是滿足以往的溫飽問題,如何享受并讓自己的日子過得不同尋常或更加愜意也是他們一直追隨的。當然享受生活的方式有很多,比如購物。信息時代,網購發(fā)展可謂是愈加愈快。之所以現在的網購能夠發(fā)展如此之快也是因為它和傳統(tǒng)的購物有的非常大的區(qū)別和優(yōu)勢。比如說,我們需要買一件自己的生活用品,要是以往肯定是去各大商場或者店鋪去挑選,然后網購就不一樣了,我們可以不用出門只需要一臺電腦或者手機就可以在網上挑選我們需要的各種商品,因而極大地節(jié)省了購物時間。不僅如此,對于那些上班族,他們的時間非常緊迫,因為大部分的時

13、間都是在工作,真正的娛樂時間卻很少,那么,網購就是他們的福音,他們完全可以利用閑暇的那么一點時間就可以購買一些自己需要的商品,而不需要過多的去花時間。既然如此,為這些廣大消費者們提供一款掌上購物APP還是非常必要的。我的這個設計是購物中的一部分,是一款提供女性服裝的APP,這對于那些“剁手黨”的女性又提供了方便。就現階段的分析,不管怎么說,擁有一款屬于自己的購物APP還是很不錯的。1.3國內外研究狀況 1.3.1 國外研究狀況 iPhone最開始的誕生是在2007年,那個時候的蘋果只是一個起步階段,因為相對其它的一些系統(tǒng)比如Windows、Symbian等來說各個方面都是不足的,特性不是很好功

14、能不是很強,可以說剛開始的蘋果完全不足以和其它已經擁有成熟的系統(tǒng)龍頭先比。蘋果剛出來的時候沒有3G網絡的支持,沒有多任務操作的支持也沒有第三方應用的支持,所以在上面能夠操縱的東西是非常有限的,你不能復制粘貼文本,不能發(fā)送電子郵件甚至不能發(fā)送彩信等。不僅如此,在其他特性方面比如屏幕自定義,文件管理器的全局課可見,語音的撥號,office的文件編輯等等。但是在iPhone發(fā)布三個月之后就迎來來一次非常大的升級,蘋果添加了MusicStore,它允許用戶直接在iPhone上面購買音樂,它或許是許許多多iPhone新特性中因為運營商網絡壓力后者運營利益遭到壓制的例子中的第一個。隨之而來,蘋果二代的出現

15、可謂是功能質的飛躍,它在手機應用中添加了APP Store,APP Store同時存在于手機(AppStore)和PC(iTunes)兩個地方,用戶選擇任意一種途徑都可以自由地瀏覽和安裝應用程序,相對之前的購買系統(tǒng)來說更加的一體化。因為在蘋果一代的時候,用戶購買商品往往是通過web的鏈接去下載的,而APP Store的出現可以讓消費者們有個統(tǒng)一的地方,不僅提供了豐富了商品更使得購買變得方便和快捷。另外重要的是,AppStore和iTunesMusic使用一個賬號,用戶無需再次輸入自己的信用卡賬號密碼,這意味著查找和安裝應用程序將前所未有的容易,又一次為廣大消費者提供了方便,在之后的升級中也加入

16、了自己原創(chuàng)的地圖的一些高級功能2。蘋果能從開始的不具備競爭的能力和到現在的走在世界的前端,說明它還是具備足夠的能力。 1.3.2 國內研究狀況 現在手機用戶越來越多,擁有一款智能手機也是必不可少的。那么,手機的大眾化必然相對的對手機軟件的需求也越來越多。這個信息時代肯定不像以往的那樣只是用手機接打電話發(fā)送短信就行,人們現在更注重的是娛樂性的多少。現在的網絡購物已經很是普遍,網絡購物能夠給廣大的消費者提供非常大的方便。蘋果手機作為當今中國智能手機市場上不可或缺的一個品牌,那么相應的需求量也是在不斷的增加。伴隨著手機智能化的普及和信息移動化以及蘋果市場的熾熱話,不難想象iOS開發(fā)技術的流行日趨繁多

17、。而OC作為蘋果獨自開發(fā)的一門語言已經成為最流行開發(fā)語言之一并有和C語言相媲美的趨勢。從近年來蘋果在中國市場的銷量和影響我們不難看出,蘋果已經做得非常成功了。第2章 購物APP開發(fā)技術簡介2.1 Object-C簡介 軟件的開發(fā)要有語言的支持。我們開發(fā)的是蘋果系統(tǒng)的軟件,用到的核心語言是object-c語言也簡稱OC。在蘋果機還沒在中國市場流行開來的時候,大家用的的最多的就是安卓機了,應該說用到的基本都是安卓機。安卓系統(tǒng)的手機軟件用到Java,雖然用的比較廣泛,但并不是它是非常完美的。語言的切合行和封裝性不是很好,而且不同的機型還要進行適配等繁瑣的工作,但OC就不一樣,之所以蘋果機近幾年能夠風

18、靡國內市場那是有原因的。 語言特點:OC用起來比較方便。因為蘋果將它進行C的封裝,由于C語言是比較底層的語言,它有著執(zhí)行速度快、內存占有量小等優(yōu)點。OC對C語言進行封裝后在編寫代碼的時候不會出現用C語言編程的復雜和臃腫,OC專門提供了供我們使用的各種接口,我們只需要調用相應的借口就能實現我們的功能而我們并不需要知道它內部的操作問題,這樣一來就大大的減少了開發(fā)者的時間并提高開發(fā)效率3。OC的方法調用不僅好用而且非常直白,雖然看上去方法或者變量比較長,但我們就憑字面的意思就可以知道該方法的作用,非常的簡單快捷。那么有人可能會問到,每一個方法看起來都這么長能切非常多,我們是不是記不住而影響開發(fā)。我要

19、告訴大家的是,完全沒問題,因為我們根本就不需要去記住這些方法的所有部分,蘋果在xcode的工具上給我們提供了一種聯(lián)想機制,只要我們記住某個方法的一部分就可以聯(lián)想所有和這個方法相關的剩下部分,可以說蘋果這方面做的還是相當不錯的。 Objective-C和C+不同,沒有子重載,但在和Java上有著相似,雖然不想Java有著多繼承,但是我們可以用協(xié)議來實現多繼承,這是毫無影響的。除此之外,由于OC是動態(tài)定型,它的庫操作起來要比C+更加方便。當然OC在其他地方也有著它們不可比擬的優(yōu)勢,這里我們就不在一一列舉。2.2 iOS系統(tǒng)簡介iOS也就是蘋果系統(tǒng)的意思,比如說我們用的iPad和iPhone都是iO

20、S來支持的,像我們用蘋果手機瀏覽應用或者聽音樂看視頻等都是iOS來提供這些基本的技術支持4。當然iOS也是有分工的,它會根據不同的設備和應用程序提供不同的服務層來解決。維持蘋果操作系統(tǒng)的這些服務層可以分為四層,如圖2.1所示。上面我們可以看到這四個層次的相互作用就是我們來實現iOS的所有操作和實現效果。當然每個層次有每個層次的不同作用。下面就是這四個層的基本介紹。Cocoa Touch層,它是我們開發(fā)的必備層,我們用來展示的用戶界面,比如用到的UI控件的實現和其它一些功能的實現包括用戶的可交互等等都是這一層來實現的。Media層,也就是媒體層他會對像Cocoa Touch這樣的底層層進行描繪并

21、給他們提供一些接口實現媒體的播放功能。Core Services層,從字面上我們就能知道它是提供服務,為我們應用的程序提供基礎的系統(tǒng)服務,當然不是所以的應用都要用到它,但是這些應用都是以該層為構建基礎的。 Core OS層,它的主要作用是給其它層的實現提供構建的基礎,一般情況下,這些功能并不會在其它層中直接應用而是應用在它們的框架上。 圖2.1 iOS層 2.3 應用程序框架簡介 程序的開發(fā)可定少不了框架的支持,在iOS開發(fā)中我們需要用的到的框架有兩種分別是Fondation框架和UIKit框架,因為我們在開發(fā)軟件過程中需要用到系統(tǒng)庫,而系統(tǒng)庫就是蘋果公司封裝好的類方法,它是防止源代碼的暴露,

22、并依賴于這兩種框架中5。這兩種框架都是實現著自己不同的作用,像Foundation主要作用就是為我們的應用程序提供一些基本的服務功能,而UIKit和其它框架都是建立在它上面。Foundation框架里有很多的特性封裝,使用它我們可以管理和創(chuàng)建一些集合比如NSArray和NSDictionary等,我們我可用它來訪問內存資源創(chuàng)建通知操作數據接口和實現代碼的異步操作等。所以框架還是非常重要的,在該項目中同樣的也用到了Foundation的框架,我們在使用的時候可以在.h或者是.m文件中導入對應的頭文件就可以了。UIKit框架主要作用就是給用戶交互提供服務的,比如我們點擊某個應用的觸摸事件或者是拖動

23、事件都是要用到該框架的處理,因為項目的實現都是和用戶直接關聯(lián)的,像圖片的展示等這些都是UIKit框架的支持來實現的。如圖2.2就是怎樣添加自己需要的框架截圖。圖 2.2 添加其它框架2.4 開發(fā)工具簡介該項目的開發(fā)工具是Xcode,Xcode是蘋果公司開發(fā)并運行在Mac OS X操作系統(tǒng)上的集成開發(fā)工具,我們可以用該工具開發(fā)我們想要的APP,圖2.3就是xcode圖標。圖2.3 xocde圖標Xcode版本最開始是3.1,我用的現在版本7.1來實現的開發(fā)。Xcode是跟蘋果系統(tǒng)進行版本同步的,比如蘋果系統(tǒng)有iOS9.1、iOS9.2等都有對應的版本為Xcode7.1和Xcode7.2。當然了,

24、這里不只是讓他們想對應而已,每一次的版本都有相應的改動和性能的提升。我們可以在蘋果的官網上下載該開發(fā)工具也可以在xcode工具內下載,當然,如果你有自己的開發(fā)這賬號,官網會有最新版本的更新,每當版本有更新之后,并會提醒開發(fā)者。Xcode運行于蘋果公司的Mac操作系統(tǒng)下,是蘋果公司向開發(fā)人員提供的集成開發(fā)環(huán)境(非開源),用于開發(fā)Mac OS X,iOS的應用程序6。 2.5 項目可行性分析2.5.1編程可行性Object-C是對C語言的封裝。我們都知道,C語言是比較底層的語言,在程序執(zhí)行方面運行速度非常快,OC就是蘋果根據C這一特性將它進行一次封裝,這樣我們就可以直接調用相應的接口而不用考慮實現

25、過程就可以完成我們的開發(fā),這樣一來不僅沒有了以往C語言編程的大量代碼出現也使得開發(fā)者能夠用OC快速實現開發(fā),C語言具有高效性也被object-c繼承,但是我們用的object-c并不像C語言用起來那么的復雜,它把復雜高效的語言變得簡單高效,這樣更利于iOS開發(fā)者的使用,也為iOS開發(fā)者帶來了便捷。而且OC同樣具備著多態(tài)性和面向對象。我們可以讓類方法提供給其他類使用也可以是其它項目中的對象。還有,子類如果繼承與父類,那么子類就可以使用父類中的所有方法和變量也可以對父類中的方法和變量進行重寫,這樣一來,開發(fā)中的功能就會變得更加靈活性7。2.5.2 市場因素可行性 信息時代的快速發(fā)展,手機行業(yè)更是炙

26、手可熱,手機應用的開發(fā)也是更新還貸比較頻繁,一款好的手機軟件,不僅能適應市場的發(fā)展方向,更是位廣大用戶帶來福利以及便捷。根據當前的市場走勢分析,更多的開發(fā)者都向著iOS區(qū)域的開發(fā)方向進行著,由于蘋果的軟件商城的支付模式越來越成熟而且它的兼容性問題很小吸引了很多的開發(fā)者,因為它值得讓其他開發(fā)者們試一試,由此而來就為iOS的發(fā)展奠定了很好的基礎8。2.5.3 硬件工具可行性 使用工具方面,開發(fā)工具iOS xcode7.1及以上版本,要求mac 10.10.5及以上操作系統(tǒng),機器裝有相應的軟件并可運行,內存在2G即可。第3章 購物APP詳細模塊設計3.1 發(fā)現頁 在實現之前需要獲取數據 我將請求網絡

27、的數據進行UISession的單利封裝實現代碼。在.h文件中定義+(SessionFetch *)defaultSession;- (void)accessNetWithUrlstring:(NSString * )urlStr backRequest:(requestResult)handler;在.m文件中實現interface SessionFetch() NSURLSession * _session;endimplementation SessionFetch- (instancetype)init if (self = super init) NSURLSessionConfigu

28、ration * configuration = NSURLSessionConfiguration defaultSessionConfiguration; _session = NSURLSession sessionWithConfiguration:configuration; return self;+(SessionFetch *)defaultSession static dispatch_once_t once; static SessionFetch * session = nil; dispatch_once(&once, session = self new; )

29、; return session;- (void)accessNetWithUrlstring:(NSString *)urlStr backRequest:(requestResult)handler 3.1.1 圖片的展示 這里我們需要定制兩種類型的xib,分別是大圖片居中靠左(圖4.1)和居中靠右(圖4.2),定制完之后創(chuàng)建tableView的對象,設置它的代理并實現代理方法,那么這兩種xib就充當tableView的兩種cell,根據拿來的數據就能將上面的imageView進行賦值然后實現圖片的展示9。兩種類型的xib定制如圖4.1和圖4.2,實現后的效果圖如圖4.3。 圖4.1 xi

30、b1的創(chuàng)建 圖4.2 xib2的創(chuàng)建圖4.3 兩種xib展示的效果圖從xib定制到圖片的顯示過程的代碼如下。- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath#pragma mark -單數cell顯示第一種cell的類型- if (indexPath.row%2 =1 ) _tableView registerNib:UINib nibWithNibName:"FindTableViewCell" bundle:nil

31、forCellReuseIdentifier:"findCellId" FindTableViewCell * cell = tableView dequeueReusableCellWithIdentifier:"findCellId" forIndexPath:indexPath; NSArray * array = cell.imageV0,cell.imageV1,cell.imageV2,cell.imageV3,cell.imageV4,cell.imageV5,cell.imageV6,cell.imageV7,cell.imageV8;

32、_array1.array = array; NSInteger count1 = _array1.count; for (int i = 0;i<count1;i+) UIImageView * imageView = _array1i; NSInteger tag = imageView.tag; NSLog("1-%ld",imageView.tag); if (imageView.tag>=100000) NSInteger index = tag-100000+(indexPath.row-1)*9; 再將圖片的tag設置為index對應 imageV

33、iew.tag = index; NSURL * imageUrl = NSURL URLWithString:_dataArrayindex"imageUrl" imageView.userInteractionEnabled = YES; /添加點擊事件 UITapGestureRecognizer * tapGR = UITapGestureRecognizer alloc initWithTarget:self action:selector(contentTapGR1:); imageView addGestureRecognizer:tapGR; imageVi

34、ew sd_setImageWithURL:imageUrl; else imageView.tag = (indexPath.row-1)*9+i; NSURL * imageUrl = NSURL URLWithString:_dataArrayimageView.tag"imageUrl" imageView.userInteractionEnabled = YES; /添加點擊事件 UITapGestureRecognizer * tapGR = UITapGestureRecognizer alloc initWithTarget:self action:sele

35、ctor(contentTapGR1:); imageView addGestureRecognizer:tapGR; imageView.layer.borderColor = (_bridge CGColorRef _Nullable)(UIColor whiteColor); imageView sd_setImageWithURL:imageUrl; NSLog("1->%ld->%ld",indexPath.row,imageView.tag); cell.selectionStyle = UITableViewCellSelectionStyleNo

36、ne; return cell; cell1.selectionStyle = UITableViewCellSelectionStyleNone; return cell1; 3.1.2 圖片點擊跳轉到另一個控制器這個過程實現的基本就是設置圖片的用戶可交互,然后給每個圖片設置對應的tag值并添加點擊事件,那么當我們點擊其中的某個圖片的時候根據它的tag值用bloc回調的形式將數據傳來,然后創(chuàng)建一個視圖控制器將得到的數據進行頁面的展示即可,圖4.4就是點擊某個圖片之后推出的新界面。 圖4.4 圖片點擊后推出新界面第一種cell類型上的點擊方法代碼。- (void)contentTapGR1:(

37、UITapGestureRecognizer *)tapGR1 NSLog("%ld",tapGR1.view.tag); FindScrollViewController * findScrollVC = FindScrollViewController alloc init; findScrollVC.imagesArray = _dataArray; findScrollVC.acceptedTag = tapGR1.view.tag; self presentViewController:findScrollVC animated:YES completion: ;

38、第二種cell類型上的點擊方法。-(void)contentTapGR2:(UITapGestureRecognizer *)tapGR2 NSLog("%ld",tapGR2.view.tag); FindScrollViewController * findScrollVC = FindScrollViewController alloc init; findScrollVC.imagesArray = _dataArray; findScrollVC.acceptedTag = tapGR2.view.tag; self presentViewController:f

39、indScrollVC animated:YES completion:nil;3.1.3圖片實現左右點擊和左右滑動翻頁這個部分的實現主要是一些邏輯的判斷,因為我們要實現既可以滑動讓圖片翻頁與能點擊 讓圖片翻頁,所以我們必須實現scrollView的兩種代理方法,一個是滾動動畫結束對應著點擊翻頁的操作控制它的滑動,另一個是滾動減速結束對應著滑動翻頁的操作控制它的滑動,具體的實現代碼如下。#pragma mark - 滾動視圖的代理/代碼的方式控制滾動視圖的偏移- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollVie

40、w if (scrollView=_scrollView) self codeAndHandControlScrollViewScrollOnScrollView:scrollView; - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView if (scrollView=_scrollView) self codeAndHandControlScrollViewScrollOnScrollView:scrollView; 3.1.4 購買的實現 購買的實現就涉及了一個關鍵的知識點,就是UIwebView,UIwebVie

41、w的好處就是根據你提供的數據鏈接,然后設置webView的相應屬性即可實現新頁面的加載。比如說,百度瀏覽的功能不是我們做的,但是我們可以把它的數據鏈接交給webView就可以加載百度瀏覽頁面,該APP的購買效果圖為圖4.5,從圖上我們可以看到,這個頁面并不是我們自己創(chuàng)建的,而是鏈接里服務器存在的,我們只是將它加載出來,然而里面的所有東西我們都可以進行操作。圖4.5為購買實現的效果圖。圖4.5 購買功能的實現實現代碼如下。- (void)bay:(UIButton *)bayBtn/根據點擊傳來的id獲取詳情的URL然后再推出詳情頁面用UIWebView來顯示內容/ NSLog("%&

42、quot;,_imagesArrayoffset"id"); DetailViewController * detailVC = DetailViewController alloc init; /拼接每張圖片的購買詳情字符串 NSString * elementDetailId = _imagesArrayoffset"id" NSString * elementDetailStr = NSString stringWithFormat:PERELEMENT_BAYDETAIL,elementDetailId; NSLog("每張圖片的購買詳

43、情URL:%",elementDetailStr); NSURL * elementDetailUrl = NSURL URLWithString:elementDetailStr; /創(chuàng)建webVeiw UIWebView * webView = UIWebView alloc initWithFrame:CGRectMake(0, 20, VIEW_WIDTH, VIEW_HEIGHT-20-40); NSURLRequest * request = NSURLRequest requestWithURL:elementDetailUrl; webView loadRequest

44、:request; webView.backgroundColor = UIColor brownColor; detailVC.view addSubview:webView; self presentViewController:detailVC animated:YES completion:nil;3.1.5 品牌相關用集合視圖(UICollectionView)展示 用分段控制器(UISegmentedControl)來顯示最新和最熱以及每個商品點擊后跳轉到購買頁面,圖4.4使我們點擊圖片推出來的視圖,蓋視圖展示的信息都是與該圖片相關信息,在圖片的右上角有該圖片對應商品的分類比如“韓

45、都衣舍”就是該商品對應的分類,當我們點擊“韓都衣舍”這個按鈕就可以查看此類商品的其他商品如圖4.6所示。 圖4.6 品牌相商品展示效果圖實現代碼如下。#pragma mark - 創(chuàng)建集合視圖- (void)createViews /創(chuàng)建滾動視圖 _collectionView = UICollectionView alloc initWithFrame:CGRectMake(0, 20, VIEW_WIDTH, VIEW_HEIGHT-20) collectionViewLayout:self addCollectionViewLayoiut; _collectionView.backgro

46、undColor = UIColor brownColor; _collectionView.showsVerticalScrollIndicator = NO; _collectionView.delegate = self; _collectionView.dataSource = self; _collectionView registerClass:UICollectionViewCell class forCellWithReuseIdentifier:"cellId"#pragma mark - 集合視圖的代理方法- (NSInteger )collection

47、View:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section return _dataArray.count;- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath UICollectionViewCell * cell = collectionView dequeueReusableCellWithRe

48、useIdentifier:"cellId" forIndexPath:indexPath; cell.contentView.backgroundColor = UIColor brownColor; dispatch_async(dispatch_get_main_queue(), UIImageView * imageView = nil; NSArray * array = cell.contentView.subviews; if (array.count) imageView = array0; imageView sd_setImageWithURL:NSUR

49、L URLWithString:_dataArrayindexPath.item"imageUrl" cell.contentView addSubview:imageView; ); return cell;3.2 品牌頁 3.2.1時裝分類展示時裝分類的展示就是對商品分類的展示比如連衣裙、T恤等,主要用到的還是集合視圖,在圖片展示之前我們還是要定制一個通用的xib來充當item,通過獲取到的數據然后來實現圖片的加載顯示,如圖4.7為xib的定制圖4.8為定制后實現的最終效果。圖4.7 分類時裝xib定制 圖4.8 時裝分類的展示效果圖實現代碼如下。NSMutableAr

50、ray * _categoryDataArray;/存放分類的數據UICollectionView * _categoryCV;/分類的集合視圖- (UICollectionViewFlowLayout * )createViewLayout UICollectionViewFlowLayout * layout = UICollectionViewFlowLayout alloc init; layout.minimumInteritemSpacing = 10; layout.minimumLineSpacing = 10; layout.sectionInset = UIEdgeInse

51、tsMake(10, 10, 10, 10); CGFloat itemWidth = (VIEW_WIDTH-10*5)/4; layout.itemSize = CGSizeMake(itemWidth, itemWidth+10); return layout;3.2.2 每一類時裝點擊推出視圖控制器實現過程上面的一樣,創(chuàng)建一個視圖控制器,每個圖片設置對應的tag值兵添加點擊事件,點擊后bloc傳值來實現數據的展示,實現的效果圖如圖4.9。 圖4.9 分類商品的點擊之后的先關產品展示實現代碼如下。#pragma mark -推出leftVC- (void)tableView:(UITab

52、leView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath LeftViewButtonClickedViewController * leftVC = LeftViewButtonClickedViewController alloc init; leftVC.typeProduct = "subject" leftVC.typeString = "code" leftVC.codeString = _featureDtaArrayindexPath.row"code

53、" leftVC.bigImageUrlStr = _featureDtaArrayindexPath.row"innerImgUrl" /根據名字傳totalCount NSInteger page = 1; NSInteger pageSize = 63; NSString * codeStr = _featureDtaArrayindexPath.row"code" /最熱的strig NSString * hotestStr = NSString stringWithFormat:BRANDPAGE_CATEGORY,"subject","code",codeStr,"hottest",page,pageSize; NSLog("特色主題詳情URL:%",hotestStr); SessionFetch defaultSession accessNetWithUrlstring:hotestStr backRequest:(NSData *data, NSError

溫馨提示

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

評論

0/150

提交評論