基于IOS的漫畫閱讀app簡(jiǎn)進(jìn)祥_第1頁
基于IOS的漫畫閱讀app簡(jiǎn)進(jìn)祥_第2頁
基于IOS的漫畫閱讀app簡(jiǎn)進(jìn)祥_第3頁
基于IOS的漫畫閱讀app簡(jiǎn)進(jìn)祥_第4頁
基于IOS的漫畫閱讀app簡(jiǎn)進(jìn)祥_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)學(xué)院綜合實(shí)訓(xùn)報(bào)告基于IOS的漫畫閱讀APP設(shè)計(jì)——首頁設(shè)計(jì)姓名簡(jiǎn)進(jìn)祥班級(jí)網(wǎng)絡(luò)122學(xué)號(hào)201200824208學(xué)科專業(yè)網(wǎng)絡(luò)工程同組成員闕臻龍、李琛、趙江濤指導(dǎo)教師董智勇日期2015年7月2日中原工學(xué)院計(jì)算機(jī)學(xué)院中文摘要本文主要描述了一個(gè)基于iOS的漫畫閱讀軟件的首頁設(shè)計(jì)過程。該漫畫閱讀軟件主要包括以下模塊及功能,熱門推薦、每日更新、分類、搜索、收藏、分享、在線閱讀、下載等。首頁有熱門漫畫展示,每日更新提供了更新中的漫畫列表,分類用來選擇自己喜歡的種類,通過搜索關(guān)鍵字查看自己喜歡的漫畫,可以把好的漫畫分享到社交軟件,在線閱讀時(shí)添加書簽,收藏自己喜愛的漫畫,WIFI條件下下載漫畫供閑暇時(shí)閱讀。本軟件采用Xcode開發(fā)工具和Objective-C語言等進(jìn)行開發(fā)。開發(fā)過程中采用了一些系統(tǒng)底層框架和網(wǎng)絡(luò)提供的其他框架實(shí)現(xiàn)以上功能。通過測(cè)試,功能模塊基本實(shí)現(xiàn),并且不會(huì)在使用產(chǎn)生系統(tǒng)崩潰以及卡頓現(xiàn)象,是一款界面優(yōu)美,操作簡(jiǎn)單,功能齊全,并且提供了大量的漫畫資源的軟件。關(guān)鍵詞:iOS,漫畫展示,首頁設(shè)計(jì),熱門推薦,每日更新AbstractThisthesismainlydescribesthehomepagedesignprocessofaniOS-basedcomicbookreadersoftware.Thecomicbookreadingsoftwareincludesthosefollowingmodulesandfunctions,Hot,dailyupdates,sort,search,collection,sharing,readonline,downloadandsoon.Homehasapopularcartoonshow,dailyupdatedprovidedcomiclistwhichinupdates,andyoucanchooseyourfavoritekindaccordingtotheclassification,checkyourfavoritecartoonbysearchingkeyword,anditalsocansharecomicstosocialsoftware,addabookmarkwhenreadingonline,collectionoftheirfavoritecomics,downloadcomictoreadintheconditionsunderWIFIforleisuretime.ThesoftwareusesXcodedevelopmenttoolsandObjective-Clanguagedevelopmentetc..Toachievethosefunctions,weusedsomesystemunderlyingframeworkandotherframeworkprovidedbythenetwork.Theprogramhasachievedallofthosefunctionmodulesandthroughthetesting.Itwillnothappensystemcrashandcatonphenomenoninusing.Ithasabeautifulinterface,easyoperation,completefunctions,anditprovidesalotofcomicresourcessoftware.Keywords:iOS;comicsshow;Homepage;TopRecommended;DailyUpdated目錄TOC\o"1-3"\h\u219361、序言 6110361.1選題背景: 6273281.1.1漫畫市場(chǎng)的現(xiàn)狀及前景 6204911.1.2IOS的發(fā)展現(xiàn)狀及可能的應(yīng)用領(lǐng)域 6183571.2選題的目的及意義 7280411.3本人的工作 728871.3.1導(dǎo)航欄設(shè)計(jì)模塊 790351.3.2側(cè)滑菜單欄左視圖模塊 8273142.系統(tǒng)需求分析 8318942.1性能需求 828992.2系統(tǒng)的功能需求: 9235032.3系統(tǒng)總體設(shè)計(jì)框架: 10221322.4開發(fā)環(huán)境: 10152783.首頁的詳細(xì)設(shè)計(jì)及實(shí)現(xiàn) 11523.1首頁的詳細(xì)頁面設(shè)計(jì) 11150923.1.1首頁的根視圖頁面設(shè)計(jì) 117473.1.2首頁設(shè)計(jì)的左視圖頁面設(shè)計(jì) 12201743.2首頁設(shè)計(jì)的需要的主要技術(shù) 1267843.3首頁設(shè)計(jì)的詳細(xì)實(shí)現(xiàn) 1564743.3.1漫畫的開場(chǎng)模塊 15264973.3.2導(dǎo)航欄設(shè)計(jì)模塊 1532123.3.3側(cè)滑菜單欄模塊 18245834.系統(tǒng)功能測(cè)試 2022214.1導(dǎo)航欄測(cè)試結(jié)果: 2093864.2菜單欄頁面測(cè)試結(jié)果: 22208255.實(shí)訓(xùn)總結(jié) 23169055.1技術(shù)總結(jié) 23250095.2思想總結(jié) 24275806.參考文獻(xiàn) 241、序言1.1選題背景:1.1.1漫畫市場(chǎng)的現(xiàn)狀及前景根據(jù)最新出爐的《2014年中國動(dòng)漫產(chǎn)業(yè)報(bào)告》顯示,我國年動(dòng)漫產(chǎn)業(yè)從“十五”期末到“十一五”期末年增長(zhǎng)率超過30%,之后的幾年也在穩(wěn)步增長(zhǎng),直至2014年產(chǎn)值已達(dá)到了1000億。業(yè)界預(yù)測(cè),未來幾年,動(dòng)漫市場(chǎng)仍舊會(huì)是保持較高的增長(zhǎng)趨勢(shì),前景相當(dāng)可觀??蛻舳耸謾C(jī)漫畫把傳統(tǒng)的紙質(zhì)閱讀更加精彩的展現(xiàn)在手機(jī)屏幕上,添加閃屏、旋轉(zhuǎn)、飛入、魔幻等多種特效到漫畫播放過程中,讓故事從漫畫書中跳躍出來,立體地呈現(xiàn)在用戶面前。這樣看漫畫更加生動(dòng),更加觸動(dòng)人心,讓漫畫在您的掌中賓彩紛呈。在未來,參與到手機(jī)動(dòng)漫行業(yè)的開發(fā)商將越來越多,國內(nèi)手機(jī)動(dòng)漫廠商將面臨前所未有的競(jìng)爭(zhēng),手機(jī)漫畫的質(zhì)量和可欣賞性也將進(jìn)一步得到提高。PC動(dòng)漫雖有魅力,但隨著越來越多智能手機(jī)、高端手機(jī)的出現(xiàn),手機(jī)動(dòng)漫將成為人們生活?yuàn)蕵分胁豢扇鄙俚囊徊糠?。因此,手機(jī)漫畫行業(yè)正朝著健康有序的方向發(fā)展,相信不久的將來手機(jī)漫畫將成為一種商業(yè)文化。1.1.2IOS的發(fā)展現(xiàn)狀及可能的應(yīng)用領(lǐng)域在一個(gè)互聯(lián)網(wǎng)騰飛的時(shí)代,伴隨著科技和經(jīng)濟(jì)的高速發(fā)展,移動(dòng)互聯(lián)已經(jīng)成為人們不可或缺的一部分,蘋果iPhone手機(jī)的成功給我們帶來了更大的震撼。國內(nèi)對(duì)于蘋果iOS開發(fā)行業(yè)起步比較晚,還有很大的發(fā)展空間,在iOS開發(fā)人才方面缺口非常大,所以在國內(nèi)專業(yè)的高級(jí)iOS開發(fā)工程師,非常稀缺,我國大部分行業(yè)是正在處于發(fā)展中或是起步基礎(chǔ)中,而iOS運(yùn)營(yíng)系統(tǒng)是大勢(shì)所趨,因?yàn)橐苿?dòng)互聯(lián)網(wǎng)一定是未來的一個(gè)方向,勢(shì)在必得一個(gè)運(yùn)營(yíng)模式,是未來的期待。所以,國內(nèi)需要一些高級(jí)的工程師和高級(jí)的開發(fā)團(tuán)隊(duì),而在中國的市場(chǎng)上對(duì)于高級(jí)iOS開發(fā)人才是非常稀缺的。有權(quán)威部門調(diào)查數(shù)據(jù)顯示,目前ios軟件人才已出現(xiàn)了38萬缺口,根據(jù)國家官方公布的數(shù)據(jù),未來幾年ios軟件開發(fā)人才市場(chǎng)缺口將達(dá)百萬,未來幾年內(nèi),IOS軟件開發(fā)人員都將供不應(yīng)求,高薪納賢便成為社會(huì)發(fā)展所需。隨著我國3G移動(dòng)網(wǎng)絡(luò)的正式商用和移動(dòng)終端設(shè)備的不斷進(jìn)步,無線移動(dòng)終端的內(nèi)容服務(wù)領(lǐng)域?qū)⑦M(jìn)入一個(gè)新的時(shí)代,從電子書、手機(jī)報(bào)等以文字為主要內(nèi)容的服務(wù)將逐漸過渡到以新聞圖片、漫畫、動(dòng)畫、視頻等為主要內(nèi)容的服務(wù)方式。手機(jī)用戶也對(duì)“更加豐富的移動(dòng)信息服務(wù)”的需求越來越強(qiáng)烈,所以近些年手機(jī)在線增值服務(wù)層出不窮。但是在手機(jī)漫畫在線閱讀領(lǐng)域,國內(nèi)至今還沒有突出的產(chǎn)品問世。因此,基于IOS的手機(jī)漫畫產(chǎn)業(yè)的前景還是相當(dāng)可觀的。1.2選題的目的及意義本實(shí)訓(xùn)項(xiàng)目可以使學(xué)生學(xué)習(xí)相關(guān)的IOS的開發(fā)。如UI、Objective-C等開發(fā)語言。Objective-C與C++是緊密相連的,在學(xué)習(xí)OC語言的同時(shí),也可以很好地溫故C++知識(shí)。期望能夠通過本選題的開發(fā)鍛煉提升學(xué)生的計(jì)算機(jī)系統(tǒng)開發(fā)能力,綜合運(yùn)用本專業(yè)的基本技能,提高學(xué)生的團(tuán)隊(duì)意識(shí),同時(shí)掌握足夠的iOS知識(shí),增強(qiáng)學(xué)生就業(yè)競(jìng)爭(zhēng)能力,并在以后實(shí)際工作中站穩(wěn)腳步。1.3本人的工作在這次實(shí)訓(xùn)中我負(fù)責(zé)的是基于IOS漫畫APP設(shè)計(jì)的首頁設(shè)計(jì)。在這個(gè)我實(shí)現(xiàn)的主要工作有:1.3.1導(dǎo)航欄設(shè)計(jì)模塊首頁的分頁欄,分為兩部分,熱門推薦和每日更新頁面,點(diǎn)擊上方的按鈕就可以在兩個(gè)頁面之間切換。熱門推薦頁面用抽屜效果一行展示了漫畫書的封面、書名等。向下滑動(dòng)屏幕時(shí)可以加載更多的漫畫信息,向上滑動(dòng)屏幕時(shí)可以刷新當(dāng)前頁面漫畫的信息,每日更新是一些連載中的漫畫,更新后顯示在每日更新里,通過點(diǎn)擊可以查看該漫畫的詳細(xì)信息頁面。導(dǎo)航欄的右按鈕是分類,點(diǎn)擊可進(jìn)入分類頁面。導(dǎo)航欄的左按鈕是菜單欄和Logo,點(diǎn)擊按鈕側(cè)滑菜單欄和Logo可出現(xiàn)。1.3.2側(cè)滑菜單欄左視圖模塊在首頁點(diǎn)擊導(dǎo)航欄左按鈕出現(xiàn)側(cè)滑菜單欄和Logo。菜單欄分為六個(gè)小部分,一共六行列表,分別是首頁、搜索、最近閱讀、我的收藏、下載管理、軟件設(shè)置,每一行都是一個(gè)按鈕,點(diǎn)擊對(duì)應(yīng)的按鈕可以跳轉(zhuǎn)到相對(duì)應(yīng)的頁面,菜單欄使用的是第三方的框架DDMenu。2.系統(tǒng)需求分析2.1性能需求為了了解該漫畫閱讀軟件的可行性,在開發(fā)之前,從開發(fā)技術(shù)、經(jīng)濟(jì)、系統(tǒng)操作等不同的方面對(duì)漫時(shí)光閱讀軟件進(jìn)行可行性分析。根據(jù)調(diào)查和現(xiàn)有的知識(shí)儲(chǔ)備可以分析出這款基于漫畫閱讀的系統(tǒng)是否可以達(dá)到預(yù)見的效果。2.1.1經(jīng)濟(jì)可行性分析漫畫閱讀這款基于iOS操作系統(tǒng)的軟件,是使用MAC操作系統(tǒng)下的Xcode的編譯器編寫的。開發(fā)只需要一臺(tái)MAC蘋果筆記本電腦即可,安裝JAVA抓包工具,Xcode編譯器,Photoshop制圖軟件。通過JAVA抓包工具,抓取漫畫軟件平臺(tái)的后臺(tái)接口地址,通過Xcode軟件去編譯系統(tǒng),通過Photoshop制圖軟件,制作系統(tǒng)中需要的圖片。也可以反編譯AppStore現(xiàn)有的軟件,獲取需要的圖片等資源。開發(fā)成本很低,并且不會(huì)浪費(fèi)資源,所以開發(fā)一套漫時(shí)光漫畫閱讀軟件從經(jīng)濟(jì)的角度考慮是可行的。2.1.2社會(huì)可行性分析漫畫閱讀軟件是為廣大漫畫愛好者,在蘋果手機(jī)上閱讀漫畫時(shí)所使用的,不為盈利的目的且不會(huì)損害他人的利益。漫時(shí)光軟件系統(tǒng)符合國家相關(guān)法律法規(guī)的要求,不影響任何組織和機(jī)構(gòu)的利益,也沒有在系統(tǒng)中宣傳宗教信仰和區(qū)域排斥的思想,不會(huì)影響社會(huì)穩(wěn)定。所以從社會(huì)可行性的角度分析,漫畫閱讀APP在社會(huì)方面是可行的。2.1.3技術(shù)可行性分析漫畫閱讀APP是基于iOS平臺(tái),使用Objective-C語言開發(fā)的,同時(shí)會(huì)涉及到UI設(shè)計(jì),工具制圖切圖和類庫的使用。從技術(shù)的角度來說,本人通過幾個(gè)月的學(xué)習(xí),已熟練的掌握了Objective-C語言,掌握常規(guī)數(shù)據(jù)結(jié)構(gòu)和算法,有良好編程習(xí)慣和經(jīng)驗(yàn),熟悉iOS網(wǎng)絡(luò)通訊HTTP、TCP/IP等協(xié)議,同時(shí)也學(xué)習(xí)了iOS開發(fā)者賬號(hào)的申請(qǐng)及App上線流程。熟練掌握了代碼加Xib的可視化編程技術(shù)。掌握了JSON和XML數(shù)據(jù)格式解析的方法,并了解了GCD、NSThread多線程的使用方法。掌握了UI中的各種控件以及多視圖應(yīng)用的開發(fā),SQLite數(shù)據(jù)庫、CoreData、歸檔和反歸檔、屬性列表(plist)等數(shù)據(jù)持久化的方式。在具備了編寫系統(tǒng)的技術(shù)和硬件軟件條件的情況下,從技術(shù)的角度出發(fā),漫畫閱讀系統(tǒng)在技術(shù)的角度是可行的。2.2系統(tǒng)的功能需求:漫畫展示首頁設(shè)計(jì):自定義NavtionBar,點(diǎn)擊APP頁面,出現(xiàn)熱門推薦和每日更新、分類等相關(guān)導(dǎo)航界面。熱門推薦列表展示:點(diǎn)擊出現(xiàn)最近熱門漫畫的界面,顯示漫畫的名稱及圖片,點(diǎn)擊進(jìn)去出現(xiàn)漫畫的詳細(xì)介紹,提供漫畫章節(jié)閱讀和收藏以及漫畫下載等。每日更新列表展示:點(diǎn)擊出現(xiàn)最近更新的漫畫的名稱及圖片,點(diǎn)擊進(jìn)去出現(xiàn)漫畫的詳細(xì)介紹,提供漫畫章節(jié)閱讀和收藏以及漫畫下載等。分類列表展示:點(diǎn)擊出現(xiàn)詳細(xì)漫畫分類,再點(diǎn)擊一種漫畫分類可出現(xiàn)相關(guān)的漫畫列表,然后點(diǎn)擊漫畫進(jìn)去可提供漫畫章節(jié)閱讀和收藏以及漫畫下載。搜索列表展示:點(diǎn)擊進(jìn)去,輸入漫畫名稱可直接搜索該漫畫。最近閱讀列表展示:點(diǎn)擊進(jìn)去,出現(xiàn)最近的閱讀詳情。我的收藏列表展示:點(diǎn)擊進(jìn)去,出現(xiàn)收藏的相關(guān)漫畫,可進(jìn)行管理。下載管理列表展示:點(diǎn)擊進(jìn)去,出現(xiàn)已下載的相關(guān)漫畫,可進(jìn)行管理。軟件設(shè)置列表展示:點(diǎn)擊進(jìn)去,主要有用戶反饋,推薦應(yīng)用,清理緩存等相關(guān)功能。2.3系統(tǒng)總體設(shè)計(jì)框架:2.4開發(fā)環(huán)境:開發(fā)該應(yīng)用使用的開發(fā)工具為Xcode6.1.1版本。開發(fā)該應(yīng)用使用的開發(fā)語言為UI、Objective-C等開發(fā)語言。開發(fā)該應(yīng)用使用MacOSX10.10.1系統(tǒng)。需要在iPhone系列手機(jī)上運(yùn)行。iPhone系列手機(jī)ios系統(tǒng)。3.首頁的詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)3.1首頁的詳細(xì)頁面設(shè)計(jì)3.1.1首頁的根視圖頁面設(shè)計(jì)首先,在頁面左上角設(shè)計(jì)一個(gè)按鈕,當(dāng)點(diǎn)擊該按鈕時(shí),可顯示出詳細(xì)的菜單欄列表和Logo。在頁面的中間居上位置添加一個(gè)分段控件,標(biāo)題分別為熱門推薦和每日更新,以及相關(guān)細(xì)節(jié)上的設(shè)計(jì)。在頁面的右上角添加一個(gè)按鈕,標(biāo)題為分類。如圖1:圖13.1.2首頁設(shè)計(jì)的左視圖頁面設(shè)計(jì)為頁面的上面設(shè)計(jì)Logo,在其下方設(shè)計(jì)詳細(xì)的菜單列表及其圖案以及相關(guān)細(xì)節(jié)方面的工作。如圖2:圖23.2首頁設(shè)計(jì)的需要的主要技術(shù)dataSourcedataSource是UITableViewDataSource類型,主要為UITableView提供顯示用的數(shù)據(jù)(UITableViewCell),指定UITableViewCell支持的編輯操作類型(insert,delete和reordering),并根據(jù)用戶的操作進(jìn)行相應(yīng)的數(shù)據(jù)更新操作,如果數(shù)據(jù)沒有更具操作進(jìn)行正確的更新,可能會(huì)導(dǎo)致顯示異常,甚至crush。DelegateDelegate是UITableViewDelegate類型,主要提供一些可選的方法,用來控制tableView的選擇、指定section的頭和尾的顯示以及協(xié)助完成cell的刪除和排序等功能。UITableViewUITableView繼承自UIScrollView,可以表現(xiàn)為Plain和Grouped兩種風(fēng)格提到UITableView,就必須的說一說NSIndexPath。UITableView聲明了一個(gè)NSIndexPath的類別,主要用來標(biāo)識(shí)當(dāng)前cell的在tableView中的位置,該類別有section和row兩個(gè)屬性,前者標(biāo)識(shí)當(dāng)前cell處于第幾個(gè)section中,后者代表在該section中的第幾行。UITableView只能有一列數(shù)據(jù)(cell),且只支持縱向滑動(dòng),當(dāng)創(chuàng)建好的tablView第一次顯示的時(shí)候,我們需要調(diào)用其reloadData方法,強(qiáng)制刷新一次,從而使tableView的數(shù)據(jù)更新到最新狀態(tài)。UITableViewControllerUITableViewController是系統(tǒng)提供的一個(gè)便利類,主要是為了方便我們使用UITableView,該類生成的時(shí)候就將自身設(shè)置成了其包含的tableView的dataSource和delegate,并創(chuàng)建了很多代理函數(shù)的框架,為我們大大的節(jié)省了時(shí)間,我們可以通過其tableView屬性獲取該controller內(nèi)部維護(hù)的tableView對(duì)象。默認(rèn)情況下使用UITableViewController創(chuàng)建的tableView是充滿全屏的,如果需要用到tableView是不充滿全屏的話,我們應(yīng)該使用UIViewController自己創(chuàng)建和維護(hù)tableView。UITableViewController提供一個(gè)初始化函數(shù)initWithStyle:,根據(jù)需要我們可以創(chuàng)建Plain或者Grouped類型的tableView,當(dāng)我們使用其從UIViewController繼承來的init初始化函數(shù)的時(shí)候,默認(rèn)將會(huì)我們創(chuàng)建一個(gè)Plain類型的tableView。

UITableViewController默認(rèn)的會(huì)在viewWillAppear的時(shí)候,清空所有選中cell,我們可以通過設(shè)置self.clearsSelectionOnViewWillAppear=NO,來禁用該功能,并在viewDidAppear中調(diào)用UIScrollView的flashScrollIndicators方法讓滾動(dòng)條閃動(dòng)一次,從而提示用戶該控件是可以滑動(dòng)的。UIConllectionViewUICollectionView是一種新的數(shù)據(jù)展示方式,簡(jiǎn)單來說可以把它理解成多列的UITableView,支持IOS6以上。集合視圖UICollectionView和表視圖UITableView很相似,可根據(jù)layout屬性設(shè)置,顯示單元格集合內(nèi)容。UICollectionViewDataSource類作為集合視圖的數(shù)據(jù)源,向集合視圖提供數(shù)據(jù)。集合視圖依賴于委托(Delegate)中定義的方法對(duì)用戶交互進(jìn)行響應(yīng)。

構(gòu)成集合視圖的三個(gè)要素,分別為:?jiǎn)卧瘢║ICollectionViewCell)、補(bǔ)充視圖(SupplementaryViews-顯示額外的元數(shù)據(jù)信息)和裝飾視圖(DecorationViews)SQLite數(shù)據(jù)庫等本地?cái)?shù)據(jù)持久化SQLite提供了對(duì)Transaction的支持。應(yīng)用Transaction即保證了數(shù)據(jù)的完整性,也會(huì)提高運(yùn)行速度,因?yàn)槎鄺l語句一起提交給數(shù)據(jù)庫的速度會(huì)比一條一條的提交方式更快。當(dāng)應(yīng)用程序運(yùn)行時(shí),Objective-C運(yùn)行時(shí)會(huì)根據(jù)執(zhí)行邏輯(而不僅是編譯期間定義的方式)實(shí)例化對(duì)象。例如,運(yùn)行中的Objective-C應(yīng)用程序可以載入界面(InterfaceBuilder創(chuàng)建的nib文件),將界面中的Cocoa對(duì)象連接到應(yīng)用程序代碼,然后在按下UI按鈕后運(yùn)行正確的方法。無需進(jìn)行重新編譯。NSUserDefaultsNSUserDefaults適合存儲(chǔ)輕量級(jí)的本地?cái)?shù)據(jù),比如要保存一個(gè)登錄界面的數(shù)據(jù),用戶名、密碼之類的,個(gè)人覺得使用NSUserDefaults是首選。下次再登錄的時(shí)候就可以直接從NSUserDefaults里面讀取上次登錄的信息。因?yàn)槿绻褂米约航⒌膒list文件什么的,還得自己顯示創(chuàng)建文件,讀取文件,很麻煩,而是用NSUserDefaults則不用管這些東西,就像讀字符串一樣,直接讀取就可以了3.3首頁設(shè)計(jì)的詳細(xì)實(shí)現(xiàn)3.3.1漫畫的開場(chǎng)模塊iOS中window是程序的根視圖,在程序啟動(dòng)時(shí)第一個(gè)加載。主要代碼如下所示。(1)初始化window,并使主窗口顯示在最前端:self.window=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];self.window.backgroundColor=[UIColorwhiteColor];[self.windowmakeKeyAndVisible];創(chuàng)建中間的根視圖和導(dǎo)航控制器,并將中間的導(dǎo)航控制器作為menuController的跟視圖控制器:MiddleViewController*middleVC=[[MiddleViewControlleralloc]init];UINavigationController*middleNC=[[UINavigationControlleralloc]initWithRootViewController:middleVC];self.menuController.rootViewController=middleNC;創(chuàng)建左邊的視圖控制器并將左邊的控制器作為menuController的左視圖控制器:VLeftViewController*leftVC=[[LeftViewControlleralloc]init];

leftVC.hotRecommendNC=middleNC;

self.menuController.leftViewController=leftC;(4)將menucontroller作為window的根視圖控制器self.window.rootViewController=self.menuController;3.3.2導(dǎo)航欄設(shè)計(jì)模塊程序采用了MVC設(shè)計(jì)方法,其中包括model數(shù)據(jù)層、view視圖層、controller導(dǎo)航控制器層。導(dǎo)航控制器控制數(shù)據(jù)和視圖之間的通訊,降低程序的耦合性。調(diào)用系統(tǒng)的UIKit框架里的控件來實(shí)現(xiàn)系統(tǒng)的UI效果。首頁在導(dǎo)航控制器上加了一個(gè)UISegmentedController分頁欄,實(shí)現(xiàn)熱門推薦和每日更新視圖之間的切換。導(dǎo)航欄上的分類和菜單欄標(biāo)志,實(shí)質(zhì)是導(dǎo)航欄的左按鈕和右按鈕,可通過點(diǎn)擊實(shí)現(xiàn)跳轉(zhuǎn)。頁面的瀑布流效果是用了UICollectionView集合視圖。頁面的數(shù)據(jù)是通過NFNetworking三方發(fā)送請(qǐng)求,從接口返回的數(shù)據(jù)由系統(tǒng)自帶函數(shù)解析JSON。圖片加載是通過SDWebImage三方提供的異步加載圖片的方法。請(qǐng)求失敗時(shí)會(huì)提示檢查網(wǎng)絡(luò),使用了UIAlertView。頁面使用的主要控件見表4.1。表4.1首頁頁面主要控件及其作用表內(nèi)容控件作用遵循的協(xié)議導(dǎo)航欄UINavigationControllerUINavigationBarUINavigationItem導(dǎo)航控制器,控制各個(gè)頁面的跳轉(zhuǎn)無熱門推薦每日更新UISegmentedController分段控件無漫畫圖片展示UICollectionView以瀑布流形式展示漫畫圖片UICollectionViewDataSourceUICollectionViewDelegateUICollectionViewDelegateFlowLayout提示信息UIAlertView請(qǐng)求數(shù)據(jù)失敗時(shí),提示用戶UIAlertViewDelegate分類UIButtonUIBarButtonItem點(diǎn)擊進(jìn)入分類頁面無菜單UIButtonUIBarButton點(diǎn)擊出現(xiàn)菜單欄無(1)定義展示的UICollectionViewCell的個(gè)數(shù)-(NSInteger)collectionView:(UICollectionView*)collectionViewnumberOfItemsInSection:(NSInteger)section;(2)系統(tǒng)自帶json解析NSMutableArray*arr=[NSJSONSerializationJSONObjectWithData:resDataoptions:NSJSONReadingMutableContainerserror:nil];(3)點(diǎn)擊首頁頁面漫畫封面時(shí)跳轉(zhuǎn)到漫畫頁面詳情頁的方法-(void)collectionView:(UICollectionView*)collectionViewdidSelectItemAtIndexPath:(NSIndexPath*)indexPath{DetailViewController*detailVC=[[[DetailViewControlleralloc]init]autorelease];[self.navigationControllerpushViewController:detailVCanimated:YES];}(4)異步加載漫畫圖片的方法[items.picturesd_setImageWithURL:urlplaceholderImage:[UIImageimageNamed:@"placeHolder4.png"]];(5)實(shí)現(xiàn)熱門推薦和每日更新的數(shù)據(jù)請(qǐng)求的方法-(void)connect{

[selfgetData:@"90:9090/manhuadaquan2appjobs/ComicHandle.ashx?method=recommend&pageindex=0&pagesize=46"];

}

-(void)changePage:(UISegmentedControl*)sender

{

self.images=nil;

self.getObject=nil;

switch(sender.selectedSegmentIndex){

case0:

option=1;

[selfgetData:@"90:9090/manhuadaquan2appjobs/ComicHandle.ashx?method=recommend&pageindex=0&pagesize=46"];

break;

case1:

option=2;

[selfgetData:@"90:9090/manhuadaquan2appjobs/ComicHandle.ashx?method=dailyupdate&pageindex=0&pagesize=45"];

break;

default:

break;

}

[self.collectionViewreloadData];

}

-(void)getData:(NSString*)url{

//用NFNetworking進(jìn)行數(shù)據(jù)的請(qǐng)求

NSMutableURLRequest*request=[NSMutableURLRequestrequestWithURL:[NSURLURLWithString:url]];

AFHTTPRequestOperation*operation=[[AFHTTPRequestOperationalloc]initWithRequest:request];

[operationsetCompletionBlockWithSuccess:^(AFHTTPRequestOperation*operation,idresponseObject){

NSString*requestTmp=[NSStringstringWithString:operation.responseString];

NSData*resData=[[[NSDataalloc]initWithData:[requestTmpdataUsingEncoding:NSUTF8StringEncoding]]autorelease];

//系統(tǒng)自帶json解析

NSMutableArray*arr=[NSJSONSerializationJSONObjectWithData:resDataoptions:NSJSONReadingMutableContainerserror:nil];

for(NSMutableDictionary*dicinarr){

BookBriefObject*obj=[BookBriefObjectbookBriefObject:dic];

[self.getObjectaddObject:obj];

NSString*url=[dicobjectForKey:@"BookIconOtherURL"];

[self.imagesaddObject:url];

[self.collectionViewreloadData];

}(6)網(wǎng)絡(luò)加載失敗時(shí)彈出的提示框控件UIAlertView*alertView=[[UIAlertViewalloc]initWithTitle:@"溫馨提示"message:@"網(wǎng)絡(luò)加載失敗!請(qǐng)檢查你的網(wǎng)絡(luò)"delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"重新加載",nil];[alertViewshow];[alertViewrelease];3.3.3側(cè)滑菜單欄模塊點(diǎn)擊首頁導(dǎo)航欄的菜單欄按鈕,會(huì)彈出菜單欄頁面。導(dǎo)航欄頁面是通過遵循UIScrollView的代理協(xié)議UIScrollViewDelegate方法,根據(jù)視圖的偏移量,通過點(diǎn)擊導(dǎo)航欄按鈕時(shí)的響應(yīng)方法改變視圖的坐標(biāo)來彈出菜單欄頁面。菜單欄中有六個(gè)按鈕分別包括首頁、搜索、最近閱讀、我的收藏、下載管理、軟件設(shè)置,點(diǎn)擊對(duì)應(yīng)的按鈕,跳轉(zhuǎn)到對(duì)應(yīng)的頁面中。按鈕是通過UITableView控件,實(shí)現(xiàn)UITableView的代理方法UITableViewDelegate和UITableViewDataSource的方法,添加自定cell視圖到UITableView上實(shí)現(xiàn)按鈕的UI樣式。(1)UITableView菜單欄的布局,添加名稱-(NSMutableArray*)textArray{if(_textArray==nil){self.textArray=[NSMutableArrayarrayWithObjects:@"首頁",@"",@"搜索",@"",@"最近閱讀",@"",@"我的收藏",@"",@"下載管理",@"",@"軟件設(shè)置",nil];}return_textArray;}(2)為菜單欄里面添加圖片和邊框,設(shè)置圖片的位置和寬和高,用三色比例隨機(jī)生成單元格的顏色,設(shè)置透明度,邊角弧度等-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{

staticNSString*cellIdentifier=@"CELL";

UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:cellIdentifier];

if(cell==nil){

cell=[[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIdentifier]autorelease];

}

cell.alpha=0.8;

cell.textLabel.text=[self.textArrayobjectAtIndex:indexPath.row];

cell.textLabel.textColor=[UIColorwhiteColor];

cell.textLabel.font=[UIFontsystemFontOfSize:17];

cell.textLabel.textAlignment=NSTextAlignmentCenter;

cell.selectionStyle=UITableViewCellSelectionStyleNone;

cell.backgroundColor=[UIColorclearColor];

NSMutableArray*iconArray=[NSMutableArrayarrayWithObjects:@"home",@"search",@"",@"recentRead",@"heart",@"download",@"",@"setting",nil];

UIView*backgroundView=[[[UIViewalloc]initWithFrame:CGRectMake(0,1,self.view.size.width,58)]autorelease];

backgroundView.backgroundColor=[UIColorcolorWithRed:arc4random()%256/255.0green:arc4random()%256/255.0blue:arc4random()%256/255.0alpha:0.8];

UIImageView*iconView=[[[UIImageViewalloc]initWithImage:[UIImageimageNamed:[iconArrayobjectAtIndex:indexPath.row]]]autorelease];

iconView.frame=CGRectMake(8,10,25,25);

[backgroundViewaddSubview:iconView];

backgroundView.layer.masksToBounds=YES;

backgroundView.layer.cornerRadius=15;

backgroundView.layer.borderWidth=0.5;

backgroundView.layer.borderColor=[UIColorwhiteColor].CGColor;

backgroundView.alpha=0.3;(3)為菜單欄里面添加Logo,設(shè)置其寬和高,透明度等UIImageView*imageView=[[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"logo"]]autorelease];

imageView.frame=CGRectMake(0,0,160,110);

imageView.alpha=0.5;

imageView.backgroundColor=[UIColorclearColor];

[self.viewaddSubview:imageView];(4)UITableView的選擇跳轉(zhuǎn)方法-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath;(5)cell對(duì)圖片和文字的對(duì)應(yīng)布局-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath;4.系統(tǒng)功能測(cè)試4.1導(dǎo)航欄測(cè)試結(jié)果:導(dǎo)航欄上包

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論