基于ObjectC的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)_第1頁(yè)
基于ObjectC的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)_第2頁(yè)
基于ObjectC的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)_第3頁(yè)
基于ObjectC的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)_第4頁(yè)
基于ObjectC的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、洛陽(yáng)師范本科畢業(yè)設(shè)計(jì)2015屆本科畢業(yè)設(shè)計(jì)基于Object-C的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)院 (系) 名 稱物理與電子信息學(xué)院專 業(yè) 名 稱過(guò)程控制學(xué) 生 姓 名學(xué) 號(hào)指 導(dǎo) 教 師完 成 時(shí) 間2015年5月10日基于Object-C的IOS項(xiàng)目的實(shí)現(xiàn)陳忠民物理與電子信息 過(guò)程控制方向 學(xué)號(hào):110544137指導(dǎo)教師;陳磊老師摘要:基于對(duì)C,Object-C的深入研究進(jìn)而對(duì)IOS項(xiàng)目的探究,通過(guò)對(duì)項(xiàng)目的研究主要對(duì)于C的邏輯深入運(yùn)算和對(duì)oc語(yǔ)法的探究以及各種方法及其操作響應(yīng),主要是為了體會(huì)面向?qū)ο蟮乃枷胍约皩?duì)于iOS方法,邏輯上的調(diào)用。通過(guò)對(duì)項(xiàng)目的研究更好地了解為何iPhone,ipad等

2、系列的發(fā)展如此的迅速,深入探討整個(gè)項(xiàng)目的運(yùn)行,更好地體會(huì)面向?qū)ο蟮木幊趟枷耄陧?xiàng)目中如何更好地做到精簡(jiǎn),合理,有效,對(duì)于一個(gè)好的程序設(shè)計(jì)師是非常有必要的;關(guān)鍵字:ios ,oc Xcode 設(shè)計(jì)思想Based on Object-C realize iPhone operating system Chen Zhong -MinCollege of Physics and Electronic Information Physics No: 110544137Tutor: Chen LeiAbstract: Based on the in-depth study of C, Object-C&#

3、39;s turn to explore the IOS project, through the study of the project's main logic for C operation and thorough inquiry Object- grammar and various methods and operation response, mainly to experience object-oriented thinking and methods for iOS, call logic. Why is the study of the project to b

4、etter understand the iPhone, ipad and other series of growing so rapidly, depth operation of the entire project, a better feel for the object-oriented programming ideas, in a project to streamline how best to achieve reasonable and effective procedures for a good designer is very necessary;Keywords:

5、 iPhone operating system Xcode Design idea目錄基于Object-C的IOS項(xiàng)目(圖游旅行)的實(shí)現(xiàn)11.引言31.1 項(xiàng)目研發(fā)的背景41.2 項(xiàng)目研發(fā)的意義42.項(xiàng)目需求分析42.1 項(xiàng)目簡(jiǎn)要需求分析43.項(xiàng)目的詳細(xì)分析53.1 項(xiàng)目啟動(dòng)前的準(zhǔn)備53.2 項(xiàng)目過(guò)程中得詳細(xì)設(shè)計(jì)54.項(xiàng)目的重要代碼的實(shí)現(xiàn)74.1主界面的設(shè)計(jì)84.2 界面跳過(guò)加載124.3支付寶的調(diào)用234.4數(shù)據(jù)持久化(沙盒的運(yùn)用)265.項(xiàng)目的優(yōu)化285.1代碼冗余處理285.2 優(yōu)化適配286總結(jié)28參考文獻(xiàn)291. 引言1.1 項(xiàng)目研發(fā)的背景 針對(duì)本次的app的研發(fā),背景:目前市場(chǎng)的

6、開發(fā)對(duì)于火車票的訂購(gòu)在之前的時(shí)候是只有12306的訂票系統(tǒng),對(duì)于飛機(jī)機(jī)票和酒店的機(jī)票的預(yù)定更是只能到航空機(jī)場(chǎng)或者是打電話預(yù)定,對(duì)于這種傳統(tǒng)的銷售車票的模式,在很大的程度上阻礙了老百姓很難在有效的時(shí)間買到票,首先是針對(duì)火車票的預(yù)定在之前的預(yù)定的火車票的過(guò)程中,很多人都是12306進(jìn)行車票的預(yù)定,更有甚者有大量的黃牛黨,倒賣車票的行為,對(duì)于那些文化程度低和對(duì)網(wǎng)絡(luò)接觸比較限制的人們更不容易買到有效價(jià)格合適的票價(jià),更有對(duì)于農(nóng)民更是一種困難,對(duì)于飛機(jī)票更是難以想象,大多數(shù)的人都是認(rèn)為機(jī)票的票價(jià)昂貴,在此之前預(yù)定機(jī)票都是通過(guò)電話或者通過(guò)在各個(gè)航空公司預(yù)定機(jī)票,不能得到正確地票價(jià)的比較和流程,所以造成了讓人

7、們意識(shí)到,飛機(jī)的票價(jià)高,不方便買票的意識(shí),而對(duì)于酒店的預(yù)定,當(dāng)你坐飛機(jī)或者火車到達(dá)你所到達(dá)的地點(diǎn)時(shí),如果此時(shí)你想在預(yù)定酒店的預(yù)定,就會(huì)產(chǎn)生很多不必要的麻煩,所以針對(duì)本文以上的說(shuō)法,針對(duì)傳統(tǒng)的售票的模式,顧客一時(shí)難以在有效的時(shí)間里買到自己需要的票,二是即使買到票也不能有效的比較日期和價(jià)格,1.2 項(xiàng)目研發(fā)的意義 為人們的出行造成了很大的不方便,針對(duì)本次app的意義就是在于對(duì)于各個(gè)的航空公司,鐵道和酒店等各個(gè)方面一條龍的服務(wù),主要是對(duì)信息的整合,讓人們能夠更好地把握自己所需要的信息,從而能夠更好地出行。針對(duì)目前對(duì)于這一方面目前市場(chǎng)上對(duì)于這方面還是有很大的需求的,在這方面上做的也比較好的就是攜程和去

8、哪兒,大多數(shù)人認(rèn)為這是一個(gè)旅游性質(zhì)的app,其實(shí)還有更多地用途,在下面本文會(huì)給大家有詳細(xì)的解說(shuō)。但是還是有很大的發(fā)展空間很多的人不知道這方面的資源的利用,所以本文很有必要對(duì)這個(gè)進(jìn)行一個(gè)深入的研究,對(duì)此在當(dāng)前領(lǐng)域已經(jīng)有很多的公司對(duì)此有一個(gè)很大的進(jìn)步,對(duì)此我覺(jué)得在機(jī)票和車票等票的系統(tǒng)的售賣是一個(gè)很有必要的趨勢(shì),從而推動(dòng)整個(gè)產(chǎn)業(yè)的發(fā)展,從而本文研發(fā)的app主要是針對(duì)代理商的APP。2. 項(xiàng)目需求分析 2.1 項(xiàng)目簡(jiǎn)要需求分析對(duì)于此次的項(xiàng)目,在可行性上是可以的,對(duì)于廣大群眾來(lái)說(shuō)這個(gè)是非常有必要的,目前很多的人都是需要的,對(duì)于長(zhǎng)遠(yuǎn)角度來(lái)說(shuō),對(duì)于手機(jī)APP的定做也是非常有必要的,能夠使用于很多對(duì)于電腦操作

9、不方便的客戶和更多希望節(jié)省大量時(shí)間的客戶,適用于很多出行旅行和長(zhǎng)途出差。是出行必不可少的。對(duì)于價(jià)格的只管比較和對(duì)時(shí)間的更好地選擇都是客戶比較好的選擇。對(duì)于項(xiàng)目的實(shí)現(xiàn)主要是分成主要的三個(gè)模塊,其余的是裝飾的模塊,主要是機(jī)票模塊,火車票的模塊和酒店的模塊,對(duì)于每個(gè)模塊主要的是對(duì)頁(yè)面的展示,主要是各個(gè)起始點(diǎn)的價(jià)格,地點(diǎn)等展示然后就是各個(gè)行程的詳細(xì)信息,以及最后的支付等功能,已經(jīng)對(duì)支付寶的調(diào)用,在對(duì)第三方框架的調(diào)用上,必須保持最新的版本控制以及數(shù)據(jù)的獲取都是要后臺(tái)人員進(jìn)行詳細(xì)的溝通。在此處只是系統(tǒng)大概的講解了項(xiàng)目的需求,細(xì)致的項(xiàng)目分析需求在下文會(huì)有詳細(xì)的分析;3. 項(xiàng)目的詳細(xì)分析3.1 項(xiàng)目啟動(dòng)前的準(zhǔn)

10、備由于項(xiàng)目太大的原因,本文在此細(xì)致的講解一個(gè)模塊以及主模塊的內(nèi)容,其他的項(xiàng)目?jī)?nèi)容課一參看這個(gè)模塊的內(nèi)容。首先對(duì)于一個(gè)app而言,首先要做到的就是真機(jī)測(cè)試,真機(jī)測(cè)試之前需要申請(qǐng)開發(fā)者的賬號(hào),對(duì)于開發(fā)者的賬號(hào)需要的流程也是比較繁雜的,但是你只要按照步驟來(lái)走,基本上是都可以成功的,(我當(dāng)時(shí)出現(xiàn)的問(wèn)題就是在信用卡的使用上出現(xiàn)的問(wèn)題,對(duì)于這個(gè)問(wèn)題,大家可以提前的百度一下),必須是支持貨幣轉(zhuǎn)換的VISA卡,這個(gè)是必須注意的,詳細(xì)步驟在我滯后會(huì)有詳細(xì)的參考文檔。對(duì)于真機(jī)測(cè)試的步驟我在此就不詳細(xì)的說(shuō)明了,對(duì)于真機(jī)測(cè)試我真的覺(jué) 得有時(shí)候是很扯淡的,尤其是在獲取真機(jī)的測(cè)試的證書的時(shí)候,在這里很是需要大家進(jìn)行參考下

11、,在做這個(gè)之前必須是要把自己的電腦要清楚所有的證書,已確保獲取證書的保證,在這一點(diǎn)上蘋果公司我覺(jué)得是做的相當(dāng)好的,(百度搜索apple developer);3.2 項(xiàng)目過(guò)程中得詳細(xì)設(shè)計(jì)首先首先在app設(shè)置之前需要設(shè)置app的圖標(biāo),由于在不同的手機(jī)屏幕上需要適配不同的尺寸,所以針對(duì)這個(gè)要求,需要三個(gè)尺寸的APP的圖標(biāo)(因?yàn)槟壳爸饕氖侨齻€(gè)尺寸)。后面還有介紹手機(jī)的適配(也是需要多個(gè)尺寸的,這個(gè)在后面講)。這些都是在制作一個(gè)APP之前不許要滿足的要求(有一個(gè)Mac是必須的這個(gè)不用我說(shuō)了,如果沒(méi)有的話,你可以自己裝一個(gè)黑蘋果);之后的設(shè)置就是APP啟動(dòng)的圖片的制作,這個(gè)是和圖標(biāo)的制作也是一樣的也是

12、需要不同的尺寸,只需要在目錄上打開相應(yīng)地設(shè)置然后加入自己的想要的圖片(這里需要注意的就是注意圖片的尺寸,如果出現(xiàn)錯(cuò)誤是會(huì)出現(xiàn)相關(guān)的警告的,到時(shí)候你自己就會(huì)看見(jiàn)),在此你要是想自己做一個(gè)連續(xù)的啟動(dòng)的動(dòng)畫的話,這個(gè)就需要在代碼中設(shè)計(jì)了,設(shè)計(jì)成滾動(dòng)的模式,如果你需要更新的話,還需要與后臺(tái)進(jìn)行連接,這個(gè)需要你和后臺(tái)的服務(wù)器進(jìn)行連接的,基本上也不是很難得。做好這些基本準(zhǔn)備的話 ,你的手機(jī)上基本就有了一個(gè)APP大概的框架了 可以開啟并且有啟動(dòng)的動(dòng)畫,之后就進(jìn)入到正文了就是代碼和需求的設(shè)計(jì)了,需要認(rèn)真地考慮和設(shè)計(jì)了,在此首先得設(shè)計(jì),項(xiàng)目的主界面在這個(gè)主界面的設(shè)置當(dāng)中就是有你像設(shè)置的內(nèi)容,飛機(jī)票,火車票,酒店

13、的管理,自己公司的圖標(biāo)內(nèi)容以及推廣(具體的圖片的設(shè)計(jì)在后面我會(huì)給出)在此主要的又三個(gè)模塊,飛機(jī)票,火車票,酒店的管理,在點(diǎn)擊進(jìn)入之后會(huì)有一個(gè)登錄的界面主要是對(duì)有賬號(hào)的客戶的一種保護(hù),這個(gè)是需要和后臺(tái)的服務(wù)器鏈接的,不過(guò)也是可以借助第三方的,可以進(jìn)一步的加密,我在此是自己直接和自己的后臺(tái)的服務(wù)器進(jìn)行的鏈接,主要用到了技術(shù)是對(duì)導(dǎo)航欄設(shè)計(jì),推向,以及plist文件的使用,tableview和plist的混合以及字典的混合運(yùn)用,從后臺(tái)獲取數(shù)據(jù),如何請(qǐng)求數(shù)據(jù),最重要的是GCD多線程的處理這個(gè)是尤其重要的,在后面我會(huì)有相關(guān)的代碼的展示,以及多按鈕的響應(yīng),這里會(huì)設(shè)計(jì)到C語(yǔ)言的邏輯運(yùn)算各種的邏輯的算法,排除,

14、在這里我用了一個(gè)第三方的插件就是日歷,這個(gè)日歷當(dāng)時(shí)是沒(méi)做個(gè)適配的,這里是需要你做適配的,這個(gè)要注意,然后還有一個(gè)第三方的HUD,這里需要是和GCD聯(lián)合在一起使用的,是進(jìn)行數(shù)據(jù)請(qǐng)求的過(guò)程中HUD要運(yùn)行,(這個(gè)在代碼中也會(huì)有展示的),還有就是對(duì)一個(gè)按鈕的動(dòng)畫的實(shí)現(xiàn)這個(gè)是需要使用好block的,(在這里block的使用時(shí)很重要的,不僅可以減少代碼的使用量小并且簡(jiǎn)單方便)。然后就是在plist獲取城市的時(shí)候,tableview的掌握是必須的,這里就不詳細(xì)說(shuō)了,有參考的文檔,在城市的選擇中有一個(gè)searchbar 對(duì)于searchbar的界面設(shè)計(jì)是沒(méi)有什么可說(shuō)的了,但是對(duì)于searchbar的內(nèi)容設(shè)計(jì)需

15、要在這里說(shuō)一下,對(duì)于里面的查詢內(nèi)容的設(shè)計(jì),主要是對(duì)oc的方法的設(shè)計(jì)以及大力方法的運(yùn)用,在這里本文認(rèn)為是一個(gè)難點(diǎn),(下文有相關(guān)的代碼的展示)。一般在設(shè)計(jì)HUD的出現(xiàn)一般是要設(shè)計(jì)在第二個(gè)的頁(yè)面上,在第二個(gè)頁(yè)面一個(gè)是不會(huì)影響主線程的阻塞在一個(gè)就是不會(huì)讓客戶有等待的焦慮感。然后在獲取到信息后就會(huì)得到你想要的信息(此處界面的UI設(shè)計(jì)以及各種的控件的設(shè)置我在這里就不一一說(shuō)明了)更多地是細(xì)節(jié)的設(shè)置,這個(gè)是需要自己多注意的。在這里在數(shù)據(jù)的請(qǐng)求之后進(jìn)入下,在頁(yè)面的轉(zhuǎn)換之間,需要注意的就是頁(yè)面的傳值,有屬性傳值,代理傳值,block傳值在正向的傳值當(dāng)中是用的是屬性的處置,對(duì)于反向的傳值我推薦的是block的傳值,

16、(原因本文已經(jīng)在上面指出過(guò)),最后還需要說(shuō)明的是在這里還需要單例傳值,單例傳值的好處也是很大的在這里就補(bǔ)一一說(shuō)明了,下文會(huì)給出相關(guān)的文檔,在頁(yè)面的展示當(dāng)中其中有tableview的展示是cell的自定義,在此本文要說(shuō)明的是cell的重用機(jī)制需要注意下,但是對(duì)于cell的自定義是重用機(jī)制就要需要你慎用了。進(jìn)入之后就是就是票價(jià)的預(yù)定了,在此其中,需要注意的就是對(duì)于數(shù)據(jù)的持久化,對(duì)于數(shù)據(jù)的持久化我使用的是沙盒,因?yàn)楸疚脑诖擞玫臄?shù)的數(shù)據(jù)不是太大,如果要用到數(shù)據(jù)比較大的情況下就需要用數(shù)據(jù)庫(kù)的形式了,以及對(duì)tableview的數(shù)據(jù)的多選以及內(nèi)部數(shù)據(jù)的處理都是需要注意的。數(shù)據(jù)的持久化在這里也是需要注意的,對(duì)

17、于沙盒的存取是重新寫入,不會(huì)一次次的加入數(shù)值,后面最重要的部分就是支付寶的引入了,對(duì)于支付寶的引入,其中的步驟是比較繁雜的,在做的時(shí)候遇見(jiàn)最大的問(wèn)題就是路徑的問(wèn)題,這個(gè)問(wèn)題需要特別的注意一下,對(duì)于支付寶的版本問(wèn)題也是需要特別的注意一下的,只有更新到最新的才能夠調(diào)用你的支付寶,對(duì)于支付寶的步驟及其相關(guān)的操作也是比較復(fù)雜的,更具需求的文檔按照步驟走,基本上是不會(huì)出現(xiàn)問(wèn)題的。以上的所述只是在此項(xiàng)目中得一個(gè)模塊,對(duì)于其他的模塊和此模塊都是類似,可以有參考和借鑒,具體的又細(xì)小的修改。在此就補(bǔ)一一列舉內(nèi)容了,在下一個(gè)部分將有代碼的展示部分;4. 項(xiàng)目的重要代碼的實(shí)現(xiàn)4.1主界面的設(shè)計(jì) 對(duì)于首頁(yè)的設(shè)置,sc

18、rollview當(dāng)時(shí)采用的是第三方的控件,具體的實(shí)現(xiàn)是部分地方中下面的代碼是只需你寫的代碼:#pragma mark - 構(gòu)建廣告滾動(dòng)視圖- (void)createScrollView NSLog("%f",HEIGHT); scrollView = AdScrollView allocinitWithFrame:CGRectMake(0,64, self.view.frame.size.width,(100.0f/568.0f)*HEIGHT); AdDataModel * dataModel = AdDataModel adDataModelWithImageName

19、AndAdTitleArray;/如果滾動(dòng)視圖的父視圖由導(dǎo)航控制器控制,必須要設(shè)置該屬性(ps,猜測(cè)這是為了正常顯示,導(dǎo)航控制器內(nèi)部設(shè)置了UIEdgeInsetsMake(64, 0, 0, 0) scrollView.contentInset = UIEdgeInsetsMake(0,0, 0, 0); scrollView.imageNameArray = dataModel.imageNameArray; scrollView.PageControlShowStyle = UIPageControlShowStyleRight; scrollView.pageControl.pageIn

20、dicatorTintColor = UIColor whiteColor; / scrollView setAdTitleArray:dataModel.adTitleArray withShowStyle:AdTitleShowStyleLeft; scrollView.pageControl.currentPageIndicatorTintColor = UIColor purpleColor; self.view addSubview:scrollView;2,在進(jìn)入到登陸的按鈕當(dāng)中,主要是對(duì)控件的定位和適配,在這里本文主要的展示的是各個(gè)控件的適配,在這一方面本文主要采用的是NSLay

21、out /界面的適配 #pragma mark = /適配會(huì)員登錄的圖片 logoView.translatesAutoresizingMaskIntoConstraints=NO; / NSLayoutConstraint *logoConstraint1=NSLayoutConstraint constraintWithItem:loginView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:loginView attribute:NSLayoutAttributeLeft multipli

22、er:1.0 constant:125; / NSLayoutConstraint *logoConstraint2=NSLayoutConstraint constraintWithItem:loginView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:loginView attribute:NSLayoutAttributeTop multiplier:1.0 constant:70; NSLayoutConstraint *logoConstraint3=NSLayoutConstra

23、int constraintWithItem:self.view attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:logoView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0; NSLayoutConstraint *logoConstraint4=NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeTop related

24、By:NSLayoutRelationEqual toItem:logoView attribute:NSLayoutAttributeTop multiplier:1.0 constant:-60; self.view addConstraints:logoConstraint3,logoConstraint4; #pragma mark = /適配登錄的賬號(hào) yonghuText.translatesAutoresizingMaskIntoConstraints=NO; NSLayoutConstraint *yonghuContraint1=NSLayoutConstraint cons

25、traintWithItem:yonghuText attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20; NSLayoutConstraint *yonghuContraint2=NSLayoutConstraint constraintWithItem:yonghuText attribute:NSLayoutAttributeRight relatedBy:NSLa

26、youtRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20; NSLayoutConstraint *yonghuContraint3=NSLayoutConstraint constraintWithItem:yonghuText attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:yonghuText attribute:NSLayoutAttributeBottom mu

27、ltiplier:1.0 constant:-40; #warning - NSLayoutConstraint *yonghuContraint4=NSLayoutConstraint constraintWithItem:yonghuText attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:logoView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:80; self.view addConstraints:yonghuCont

28、raint1,yonghuContraint2,yonghuContraint3,yonghuContraint4; #pragma mark = /適配密碼 mimaText.translatesAutoresizingMaskIntoConstraints=NO; NSLayoutConstraint *mimaContraint1=NSLayoutConstraint constraintWithItem:mimaText attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:yonghuText at

29、tribute:NSLayoutAttributeBottom multiplier:1.0 constant:10; NSLayoutConstraint *mimaContraint2=NSLayoutConstraint constraintWithItem:mimaText attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:mimaText attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-40; NSLayoutConstrai

30、nt *mimaConstraint3=NSLayoutConstraint constraintWithItem:mimaText attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20; NSLayoutConstraint *mimaConstraint4=NSLayoutConstraint constraintWithItem:mimaText attribute

31、:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20; self.view addConstraints:mimaContraint1,mimaContraint2,mimaConstraint3,mimaConstraint4; #pragma mark = /登錄按鈕的適配 dengluBtn.translatesAutoresizingMaskIntoConstraints=N

32、O; NSLayoutConstraint *buttonConstraint1=NSLayoutConstraint constraintWithItem:dengluBtn attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:dengluBtn attribute:NSLayoutAttributeRight multiplier:1.0 constant:-280; NSLayoutConstraint *buttonConstraint2=NSLayoutConstraint constraint

33、WithItem:dengluBtn attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:dengluBtn attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-50; NSLayoutConstraint *buttonConstraint3=NSLayoutConstraint constraintWithItem:dengluBtn attribute:NSLayoutAttributeTop relatedBy:NSLayoutRel

34、ationEqual toItem:mimaText attribute:NSLayoutAttributeBottom multiplier:1.0 constant:20; NSLayoutConstraint *buttonConstraint4=NSLayoutConstraint constraintWithItem:dengluBtn attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multip

35、lier:1.0 constant:0; NSArray *buttonConstraints=buttonConstraint1,buttonConstraint2,buttonConstraint3,buttonConstraint4; self.view addConstraints:buttonConstraints;#pragma mark適配登錄下方的圖片 sloganView.translatesAutoresizingMaskIntoConstraints=NO; NSLayoutConstraint *sloganConstraint1=NSLayoutConstraint

36、constraintWithItem:sloganView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:sloganView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-160; NSLayoutConstraint *sloganConstraint2=NSLayoutConstraint constraintWithItem:sloganView attribute:NSLayoutAttributeTop related

37、By:NSLayoutRelationEqual toItem:sloganView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-30; NSLayoutConstraint *sloganConstraint3=NSLayoutConstraint constraintWithItem:sloganView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:dengluBtn attribute:NSLayoutAttribute

38、Bottom multiplier:1.0 constant:40; NSLayoutConstraint *sloganConstraint4=NSLayoutConstraint constraintWithItem:sloganView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0; NSArray *sloganConstrants=slogan

39、Constraint1,sloganConstraint2,sloganConstraint3,sloganConstraint4; self.view addConstraints:sloganConstrants;3.在接受數(shù)據(jù)的過(guò)程中對(duì)數(shù)有一個(gè)簡(jiǎn)單地xml地解析在這里本文就不一一書寫了在后面的文檔本文可能會(huì)提到的4.2 界面跳過(guò)加載4.在進(jìn)行界面的轉(zhuǎn)換和HUD的實(shí)現(xiàn)和請(qǐng)求數(shù)據(jù),在這里會(huì)使用到多線程GCD,這一點(diǎn)是早ios開發(fā)的過(guò)程中是尤其重要的在這段代碼里面我會(huì)展示的是用Gdate解析文件,HUD的展示,數(shù)據(jù)的請(qǐng)求以及和GCD的混合的運(yùn)用:以及對(duì)日期的格式的處理的問(wèn)題,吧全部的信息處理在

40、一個(gè)按鈕的時(shí)間當(dāng)中,在這里需要細(xì)心的處理-(void)btn1Test NSLog("前天按鈕"); NSLog("%",self.btn2.titleLabel.text); self.fightArr=NSMutableArray allocinit; gressHUD=MBProgressHUD allocinitWithView:self.view; self.view addSubview:gressHUD; /遮罩 gressHUD.dimBackground=YES; gres

41、sHUD.labelText="圖游為您加載" /動(dòng)畫效果 gressHUD.animationType=MBProgressHUDModeDeterminateHorizontalBar; /顯示對(duì)話框 gressHUD showAnimated:YES whileExecutingBlock: /對(duì)話框顯示時(shí)需要執(zhí)行的操作 時(shí)間為3秒 sleep(100); ; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); d

42、ispatch_group_t group = dispatch_group_create(); dispatch_group_async(group, queue, if (self.buttonTag=102) NSLog("group1"); NSDateFormatter *dateFormatter = NSDateFormatter alloc init; dateFormatter setTimeZone:NSTimeZone timeZoneWithAbbreviation:"UTC" dateFormatter setDateForma

43、t:"yyyy-MM-dd" / 日期加 NSDate *Date0 = NSDate allocinit; Date0=dateFormatter dateFromString:self.btn2.titleLabel.text; NSTimeInterval interval =-60 * 60 * 24; qiantianStr = dateFormatter stringFromDate:Date0 initWithTimeInterval:interval sinceDate:Date0; self.xmlElement=NSXMLElement allocini

44、t; self.myArr=NSMutableArray array; self.myArr2=NSMutableArray array; NSString *path=NSString stringWithFormat:" NSURL *url=NSURL URLWithString:path; _autoreleasing NSURLResponse *response; _autoreleasing NSError *error; NSURLRequest *request=NSURLRequest requestWithURL:url cachePolicy:NSURLReq

45、uestUseProtocolCachePolicy timeoutInterval:100; NSData *xmldata=NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error; /使用NSData對(duì)象初始化 GDataXMLDocument *doc = GDataXMLDocument alloc initWithData:xmldata options:0 error:nil; /獲取根節(jié)點(diǎn)(Users) GDataXMLElement *root

46、Element = doc rootElement; /獲取根節(jié)點(diǎn)下的節(jié)點(diǎn)(User) NSArray *Flights = rootElement elementsForName:"Flight" self.fightNum=Flights count; for (GDataXMLElement *fighlit in Flights) / NSString *ArrName=fighlit attributeForName:"ArrName" stringValue;in NSString *ArrTime=fighlit attributeForN

47、ame:"ArrTime"stringValue; NSString *DptTime=fighlit attributeForName:"DptTime"stringValue; NSString *ArrAirport=fighlit attributeForName:"ArrAirport"stringValue; NSString *Carrier=fighlit attributeForName:"Carrier"stringValue; NSString *Code=fighlit attributeF

48、orName:"Code"stringValue; NSString *CodeShare=fighlit attributeForName:"CodeShare"stringValue; NSString *Fuel=fighlit attributeForName:"Fuel"stringValue; NSString *Price=fighlit attributeForName:"Price"stringValue; NSString *Meal=fighlit attributeForName:"

49、;Meal"stringValue; NSString *Plantype=fighlit attributeForName:"Plantype"stringValue; NSString *Stops=fighlit attributeForName: "Stops"stringValue; NSString *Tax=fighlit attributeForName:"Tax"stringValue; NSString *ArrAirportName=fighlit attributeForName:"ArrA

50、irportName"stringValue; NSString *DptAirportName=fighlit attributeForName:"DptAirportName"stringValue; NSString *CarrierName=fighlit attributeForName:"CarrierName"stringValue; NSMutableDictionary *tempDic=NSMutableDictionary dictionary; tempDic setObject:ArrAirportName forKe

51、y:"ArrAirportName" tempDic setObject:DptAirportName forKey:"DptAirportName" tempDic setObject:ArrTime forKey:"ArrTime" tempDic setObject:DptTime forKey:"DptTime" tempDic setObject:ArrAirport forKey:"ArrAirport" tempDic setObject:Carrier forKey:"

52、Carrier" tempDic setObject:Code forKey:"Code" tempDic setObject:CodeShare forKey:"CodeShare" tempDic setObject:Fuel forKey:"Fuel" tempDic setObject:Price forKey:"Price" tempDic setObject:Meal forKey:"Meal" tempDic setObject:Plantype forKey:"Plantype" tempDic setObject:Stops forKey:"Stops" tempDic setObject:Tax forKey:"Tax" tempDic setObject:CarrierName forKey:"CarrierName"

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論