下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】iOS開(kāi)發(fā)那些事--簡(jiǎn)單表視圖
表視圖是iOS開(kāi)發(fā)中使用最頻繁的視圖,我們一般都會(huì)選擇以表的形式來(lái)展現(xiàn)數(shù)據(jù),比如通訊錄、頻道列表等。表視圖分段、分組、索引等功能使我們所展示的數(shù)據(jù)看起來(lái)更規(guī)整更有調(diào)理,更令人興奮的是表視圖還可以利用細(xì)節(jié)展示等功能多層次的展示數(shù)據(jù),正所謂一表勝千言。不過(guò),相較于其它控件表視圖的使用比較復(fù)雜,但是對(duì)比于表視圖各種靈活多變的功能,我們?cè)谑褂蒙匣ㄙM(fèi)的努力還是相當(dāng)值得的。
簡(jiǎn)單表視圖表視圖的形式靈活多變,本著由淺入深的原則,我們先從簡(jiǎn)單表視圖開(kāi)始學(xué)習(xí)。本節(jié)講的簡(jiǎn)單表視圖是動(dòng)態(tài)表,(iOS5之前全部是動(dòng)態(tài)表沒(méi)有動(dòng)態(tài)表和靜態(tài)表區(qū)別)。創(chuàng)建簡(jiǎn)單表視圖在iOS5之后我們可以使用xib或者故事板技術(shù)創(chuàng)建表視圖,要顯示的是一個(gè)最基本的表,我們只需實(shí)現(xiàn)UITableViewDataSource協(xié)議中必須要實(shí)現(xiàn)的方法即可,分別是tableView:numberOfRowsInSection:和tableView:cellForRowAtIndexPath:就可以了。:構(gòu)造方法initWithFrame:style:是在實(shí)例化表視圖的時(shí)候調(diào)用,如果采用xib或故事板來(lái)設(shè)計(jì)表視圖,那么表視圖的創(chuàng)建是在實(shí)例化表視圖控制器的時(shí)候完成的,表視圖顯示的時(shí)候會(huì)發(fā)出tableView:numberOfRowsInSection:消息詢(xún)問(wèn)當(dāng)前節(jié)中的行數(shù),表視圖單元格顯示的時(shí)候會(huì)發(fā)出tableView:cellForRowAtIndexPath:消息為單元格提供顯示數(shù)據(jù)。我們創(chuàng)建一個(gè)簡(jiǎn)單表視圖,單元格使用默認(rèn)樣式,有圖標(biāo)和主標(biāo)題,顯示的是世界杯球隊(duì)的信息。
使用“SingleViewApplication”模板創(chuàng)建一個(gè)工程,工程名為“SimpleTable”,打開(kāi)IB設(shè)計(jì)畫(huà)面,在“ViewControllerScene”選中“ViewController”刪除控制器,然后從控件庫(kù)中拖拽一個(gè)“TableViewController”到設(shè)計(jì)畫(huà)面。
將h文件中ViewController的父類(lèi)從原來(lái)的UIViewController修改為UITableViewController。在IB設(shè)計(jì)畫(huà)面左側(cè)的Scene列表中選擇“TableViewControllerScene”→“TableViewController”,打開(kāi)表視圖控制器的標(biāo)識(shí)檢查器,在Class選項(xiàng)里選擇“ViewController”,這是我們自己的編寫(xiě)視圖控制器。然后在Scene列表中選擇“TableViewControllerScene”→“TableViewController”→“TableView”,打開(kāi)表視圖的屬性檢查器。Content下有兩個(gè)選項(xiàng)“DynamicPrototypes”和“StaticCells”,這兩個(gè)選項(xiàng)只有在故事板中才有。“DynamicPrototypes”是構(gòu)建“動(dòng)態(tài)表”如果通過(guò)代碼來(lái)實(shí)現(xiàn)單元格的創(chuàng)建,“PrototypeCells”項(xiàng)目要設(shè)為0,代碼實(shí)現(xiàn)的模式代碼如下:
static
NSString
*CellIdentifier
=
@”CellIdentifier”;
UITableViewCell
*cell
=
[tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if
(cell
==
nil)
{
cell
=
[[UITableViewCell
alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
Identifier是可重用單元格標(biāo)識(shí)符,這個(gè)可重用單元格與Collection視圖中的可重用單元格概念一樣。首先,在表視圖中查找是否有可以重用的單元格,如果沒(méi)有就通過(guò)initWithStyle:reuseIdentifier:構(gòu)造方法創(chuàng)建一個(gè)單元格對(duì)象。如果要利用故事板設(shè)計(jì)單元格,要選擇“TableViewControllerScene”→“TableViewController”→“TableView”→“TableViewCell”,打開(kāi)單元格的屬性檢查器,Style下有很多選項(xiàng),Identifier是指可重用單元格標(biāo)識(shí)符。
這樣操作以后在代碼部分就不需要實(shí)例化單元格了,我們直接通過(guò)設(shè)定的Identifier取得單元格的實(shí)例,以此達(dá)到重用單元格的目的。
static
NSString
*CellIdentifier
=
@”CellIdentifier”;
UITableViewCell
*cell
=
[tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if
(cell
==
nil)
{
cell
=
[[UITableViewCell
alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
我們需要將“team.plist”和“球隊(duì)圖片”添加到工程中,ViewController.h文件的代碼如下:
#import
<UIKit/UIKit.h>
@interface
ViewController
:
UITableViewController
@property
(nonatomic,
strong)
NSArray
*listTeams;
@end
需要將ViewController的父類(lèi)修改為UITableViewController。還定義NSArray*類(lèi)型的屬性listTeams,listTeams用來(lái)裝載從文件中讀取的數(shù)據(jù)。讀取屬性列表文件team.plist的操作是在viewDidLoad方法中實(shí)現(xiàn)的
ViewController.m文件的viewDidLoad方法代碼如下:
-
(void)viewDidLoad
{
[super
viewDidLoad];
NSBundle
*bundle
=
[NSBundle
mainBundle];
NSString
*plistPath
=
[bundle
pathForResource:@"team"
ofType:@"plist"];
//獲取屬性列表文件中的全部數(shù)據(jù)
self.listTeams
=
[[NSArray
alloc]
initWithContentsOfFile:plistPath];
}
我們?cè)倏纯碪ITableViewDataSource協(xié)議方法,代碼如下:
-
(NSInteger)tableView:(UITableView
*)tableView
numberOfRowsInSection:(NSInteger)section
{
return
[self.listTeams
count];
}
-
(UITableViewCell
*)tableView:(UITableView
*)tableView
cellForRowAtIndexPath:(NSIndexPath
*)indexPath
{
static
NSString
*CellIdentifier
=
@”CellIdentifier”;
UITableViewCell
*cell
=
[tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if
(cell
==
nil)
{
cell
=
[[UITableViewCell
alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
NSUInteger
row
=
[indexPath
row];
NSDictionary
*rowDict
=
[self.listFilterTeams
objectAtIndex:row];
cell.textLabel.text
=
[rowDict
objectForKey:@"name"];
NSString
*p_w_picpathPath
=
[rowDict
objectForKey:@"p_w_picpath"];
p_w_picpathPath
=
[p_w_picpathPath
stringByAppendingString:@".png"];
cell.p_w_picpathView.p_w_picpath
=
[UIImage
p_w_picpathNamed:p_w_picpathPath];
cell.accessoryType
=
UITableViewCellAccessoryDisclosureIndicator;
return
cell;
}
由于當(dāng)前的這個(gè)表事實(shí)上只有一個(gè)節(jié),因此不需要對(duì)節(jié)進(jìn)行區(qū)分,在tableView:numberOfRowsInSe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版公司關(guān)鍵崗位高級(jí)管理人員勞動(dòng)合同樣本集
- 殘疾人工作合同范本(2篇)
- 2025年度風(fēng)電場(chǎng)管件采購(gòu)合同模板
- 2025年個(gè)人二手車(chē)買(mǎi)賣(mài)交合同模板(2篇)
- 2025年“敬老月”活動(dòng)總結(jié)經(jīng)典版(二篇)
- 2025年8月組工干部個(gè)人工作總結(jié)(二篇)
- 2025年萬(wàn)能個(gè)人工作總結(jié)經(jīng)典版(3篇)
- 2025年上小學(xué)少先隊(duì)工作總結(jié)(二篇)
- 2025年上半年旅游工作總結(jié)(二篇)
- 2025年上半年保險(xiǎn)公司員工工作總結(jié)樣本(二篇)
- 九年級(jí)上冊(cè)-備戰(zhàn)2024年中考?xì)v史總復(fù)習(xí)核心考點(diǎn)與重難點(diǎn)練習(xí)(統(tǒng)部編版)
- 健康指南如何正確護(hù)理蠶豆病學(xué)會(huì)這些技巧保持身體健康
- 老客戶(hù)的開(kāi)發(fā)與技巧課件
- 2024建設(shè)工程人工材料設(shè)備機(jī)械數(shù)據(jù)分類(lèi)和編碼規(guī)范
- 26個(gè)英文字母書(shū)寫(xiě)(手寫(xiě)體)Word版
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗(yàn)方法和判定規(guī)則
- DB31 SW-Z 017-2021 上海市排水檢測(cè)井圖集
- 日語(yǔ)專(zhuān)八分類(lèi)詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語(yǔ)課外積累:Hello,China《你好中國(guó)》1-20詞塊摘錄課件
評(píng)論
0/150
提交評(píng)論