版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、iOS7-Chapter1raywenderlich storeiOS Apprentice 2to-do list)App StoreiOSiOSChecklistsiPhone1shoppingChecklistsTable viewsnavigation controllersiOSUI-iOStable view) table viewiOS(navigation controller)checklist”To Do”iP-Calendar,Notes,Contacts,Mail,SettingMusictab bar如果你想成為真正被人認(rèn)可的iOS開發(fā)者,那么就必須掌握這兩個(gè)基本的界
2、面元素。此外,我們還將學(xué)習(xí)如何在不同的界面間傳遞數(shù)據(jù),這個(gè)問題對(duì)大多數(shù)入門者來說都是個(gè)難題。當(dāng)我們學(xué)完這個(gè)系列的教程后,將會(huì)對(duì)view controller(視圖控制器),table view(表視圖)和 delegate(代理)的概念輕車熟路,即便在夢(mèng)中你也能開發(fā)出一款應(yīng)用(好吧,哥知道你的夢(mèng)中更多是土豪金或者蒼老師)。本系列教程會(huì)很長(zhǎng),里面包含了大量的源代碼,最好可以專門抽一點(diǎn)時(shí)間來好好學(xué)一下。在學(xué)習(xí)的過程中,建議大家多改動(dòng)代碼,即便讓應(yīng)用崩潰了也無所謂。學(xué)習(xí)編程的最好方法就是多寫多用多改代碼。在繼續(xù)學(xué)習(xí)之前,我們還是稍微放松一下吧。1111table viewChecklistsChec
3、kists1)023Add/Edit Checklist-45Add/Edit Item“”-6Table ViewiOS1.2.3.NBXcodeXcodeProduct Name: ChecklistsOraganization Name:Company Identifier: Class Prefix: Checklistscom.xxxDevi:onenextOkCommand +RXcode,ChecklistsChecklistsGeneralDeployment InfoDevice OrienionLandscape LeftLandpe RightPortraitUpside
4、 DownUpside DowniPhoneHomeiPadStoryboardsstoryboardingiOS5“”iOS5xibstoryboardBulls EyeStoryboardXcodeXcodeChecklistViewController.h.mMain.storyboardXcodeInterface BuilderstoryboardsceneChecklists View ControllerDeletestoryboard outline”No Scenes”outline storyboard erface BuilderNBtable view controll
5、erChecklistViewController.hXcodeChecklistViewCooller.hinterfaceerface ChecklistsViewController : UIViewControllererface ChecklistsViewController : UITableViewControllerObjective-cUITableViewControllerUIViewControllerstoryboardObject Library(Table View ControllerstoryboardIdentity inspectorXcodeinspe
6、ctorCustom ClassClassChecklistsViewController”Checklists View Controller Scene”Table View CongtrollerTable ViewChecklistsViewControllerTable ViewiPhone-inch)iPhone Retina(4-inch 64-bittable view)table viewUITableViewtable viewUITableViewtable viewiOSplaingrounpedgroupedplaingroupedCheckliststable vi
7、ewrowsChecklistscellscellrowtable viewcellrowcell1010cellsrowscellrowiOS5tablecellXcodeprototyp cellsInterface buildercellsXcodestoryboardcellObject LibraryLabelcell:Checklist ItemcellcheckmcheckmarkcellaccessorycellTable View CellCheckmarkAttributes InspectorAccessorycellreuse identifiertable viewc
8、ellrowsrowstable viewcellrowscells cellsandroidcellsreuse identifiercellcellcellidentifiercellcellChecklistscell,identifierTablew CellAccessoryIdentifierChecklistItemcellrowscellcellXcodeChecklistsViewController.mend-(NSeger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSeger)sectionret
9、urn 1;-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPathUITableViewCell *cell =tableView dequeueReusableCellWithIdentifier:ChecklistItem; return cell;UITableViewOk“100”“”numberOfRowsInSectioncellcellForRowAtIndexPathiOSChecklistsViewControlleriOSMVCel
10、-View-Controller)controlleriOSMVC好了,如果MVC暫時(shí)讓你頭疼,先不管它,回到我們這個(gè)具體的例子。我們?cè)趎umberOfRowsInSection方法中返回的是數(shù)字1,其實(shí)就是告訴表視圖我們只需要顯示1行數(shù)據(jù)。如果要顯示10行呢?只需要更改這個(gè)數(shù)字就可以了。你懂的。接著表視圖會(huì)調(diào)用cellForRowAtIndexPath方法為某一行數(shù)據(jù)獲取一個(gè)cell。在該方法中,我們簡(jiǎn)單獲取了prototype cell(原型表格)的copy,然后將其返回給表視圖。通常我們會(huì)在這個(gè)方法中將行數(shù)據(jù)放到cell中,不過到目前為止這個(gè)應(yīng)用還沒有任何行數(shù)據(jù)。所以我們就用最簡(jiǎn)單的pr
11、ototype cell。好了,現(xiàn)在可以試運(yùn)行應(yīng)用,看看效果如何。iPhoneiOS7iOS7UIObjective-C- (NSeger)tableView:(UITableView *)tableView / parameter 1 numberOfRowsInSection: (NSeger)section / parameter 2.(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath./ 1 / 2UITableViewsection in
12、dexPathNSIndexPathoptionC,C+void numberOfRowsInSection(UITableView *tableView, NSeger section).Objective-CObjective-C以上方法的官方正式命名應(yīng)該是tableView:numberOfRowsInSection:(包含冒號(hào))。如果你大聲讀出來,就會(huì)發(fā)現(xiàn)這種命名方式是有意義的。該方法的作用就是獲取某個(gè)特定表視圖中某個(gè)特定 section的行數(shù)量。小練習(xí):修改代碼,讓表視圖中顯示五行信息。這個(gè)應(yīng)該很簡(jiǎn)單吧。-(NSInteger)tableView:(UITableView *)tab
13、leView numberOfRowsInSection:(NSInteger)section return 5;只需要把數(shù)字改成5就Ok了。但有些哥們不喜歡代碼,更喜歡可視化操作。于是他們跑到storyboard里面,然后把prototype cell復(fù)制粘貼了5次,好吧,這下其實(shí)弄巧成拙了。當(dāng)我們?cè)谝陨戏椒ㄖ袑⒎祷財(cái)?shù)值設(shè)置為5的時(shí)候,其實(shí)就是告訴表視圖讓它顯示5行數(shù)據(jù)。此時(shí)表視圖會(huì)調(diào)用cellForRowAtIndexPath5次,也就是每一行數(shù)據(jù)調(diào)用1次該方法。因?yàn)閏ellForRowAtIndexPath方法中只需要返回一個(gè)prototype cell的copy,所以表視圖就會(huì)顯示5個(gè)
14、相同的行。我們可以使用不同的方法在cellForRowAtIndexPath方法中為行數(shù)據(jù)創(chuàng)建所需的cell,但目前來說最簡(jiǎn)單的方法是:在storyboard的表視圖中添加一個(gè)prototype cell,然后調(diào)用tableView dequeueReusableCellWithIdentifier方法。這個(gè)聽起來有點(diǎn)可怕,其實(shí)只不過是在需要的時(shí)候創(chuàng)建了prototype cell的一個(gè)副本,或者是重復(fù)利用了一個(gè)已經(jīng)存在的cell。一旦我們有了所需的cell后,就可以從相應(yīng)行中獲取數(shù)據(jù)來填充,并讓其顯示在表視圖中。在下一部分的內(nèi)容我們就會(huì)學(xué)習(xí)如何具體來實(shí)現(xiàn)。關(guān)于Index path的腦補(bǔ)剛才提
15、到了在Xcode中按住option點(diǎn)擊NSIndexPath可以查看相關(guān)的文檔,現(xiàn)在讓我們來了解下這個(gè)究竟是個(gè)什么玩意吧在剛才的cellForRowAtIndexPath方法中,表視圖使用該方法為某個(gè)cell請(qǐng)求數(shù)據(jù)源。但index-path究竟是啥?簡(jiǎn)單來說,NSIndexPath是指向表中某個(gè)特定行的對(duì)象。它由一個(gè)行編號(hào)和一個(gè)section編號(hào)共同組成,就這么簡(jiǎn)單。當(dāng)表視圖為cell請(qǐng)求數(shù)據(jù)源的時(shí)候,程序會(huì)查看indexPath.row的行編號(hào)屬性,從而確定該cell需要哪一行數(shù)據(jù)。在使用表視圖的時(shí)候,我們還有可能把不同的行放進(jìn)section里面。比如在地址薄應(yīng)用中,我們會(huì)使用姓來查找聯(lián)系人。所有姓以A開頭的聯(lián)系人會(huì)被分到同一個(gè)section組中,而所有姓以B開頭的聯(lián)系人會(huì)被放到另一個(gè)section組中,以此類推。為了查找某一行所屬的section,我們需要使用indexPath.section屬性。因?yàn)镃hecklists應(yīng)用不會(huì)用到這種分組方式,所以可以暫時(shí)忽略NSIndexPath的section屬性。最后要注意的是:在程序世界里,萬物從0開始。所有如果你的列表中有四個(gè)事項(xiàng),那么它們的編號(hào)是0,1,2和3。當(dāng)然這個(gè)有點(diǎn)反人類,畢竟我們習(xí)慣了數(shù)自己的手指1,2,3,4。不過在程序世界里面
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度婚姻法律咨詢合同:訴訟離婚與協(xié)議離婚選擇策略
- 2025版門樓安全防范系統(tǒng)設(shè)計(jì)與實(shí)施合同4篇
- 二零二五版環(huán)保型排水系統(tǒng)設(shè)計(jì)施工一體化合同4篇
- 2025年度教育培訓(xùn)機(jī)構(gòu)派遣教師勞動(dòng)合同
- 2025年度個(gè)人住房抵押借款合同范本(全新修訂版)2篇
- 2025年度成人外語培訓(xùn)機(jī)構(gòu)課程及教學(xué)資源轉(zhuǎn)讓合同4篇
- 2025年度鋼構(gòu)結(jié)構(gòu)檢測(cè)分包服務(wù)合同
- 2025年跨境電子商務(wù)平臺(tái)合作經(jīng)營(yíng)合同2篇
- 2025年度個(gè)人貨運(yùn)貨物安全處理合同范本大全4篇
- 林地生態(tài)補(bǔ)償與扶貧合作合同(2025版)3篇
- 腦梗死合并癲癇病人的護(hù)理查房
- 蘇教版四年級(jí)上冊(cè)脫式計(jì)算300題及答案
- 犯罪現(xiàn)場(chǎng)保護(hù)培訓(xùn)課件
- 扣款通知單 采購部
- 電除顫操作流程圖
- 湖北教育出版社三年級(jí)下冊(cè)信息技術(shù)教案
- 設(shè)計(jì)基礎(chǔ)全套教學(xué)課件
- IATF16949包裝方案評(píng)審表
- 人教版八年級(jí)美術(shù)下冊(cè)全冊(cè)完整課件
- 1 運(yùn)行方案說明
- 北京房地產(chǎn)典當(dāng)合同
評(píng)論
0/150
提交評(píng)論