


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術】iOS開發(fā)那些事--簡單表視圖
表視圖是iOS開發(fā)中使用最頻繁的視圖,我們一般都會選擇以表的形式來展現(xiàn)數(shù)據(jù),比如通訊錄、頻道列表等。表視圖分段、分組、索引等功能使我們所展示的數(shù)據(jù)看起來更規(guī)整更有調理,更令人興奮的是表視圖還可以利用細節(jié)展示等功能多層次的展示數(shù)據(jù),正所謂一表勝千言。不過,相較于其它控件表視圖的使用比較復雜,但是對比于表視圖各種靈活多變的功能,我們在使用上花費的努力還是相當值得的。
簡單表視圖表視圖的形式靈活多變,本著由淺入深的原則,我們先從簡單表視圖開始學習。本節(jié)講的簡單表視圖是動態(tài)表,(iOS5之前全部是動態(tài)表沒有動態(tài)表和靜態(tài)表區(qū)別)。創(chuàng)建簡單表視圖在iOS5之后我們可以使用xib或者故事板技術創(chuàng)建表視圖,要顯示的是一個最基本的表,我們只需實現(xiàn)UITableViewDataSource協(xié)議中必須要實現(xiàn)的方法即可,分別是tableView:numberOfRowsInSection:和tableView:cellForRowAtIndexPath:就可以了。:構造方法initWithFrame:style:是在實例化表視圖的時候調用,如果采用xib或故事板來設計表視圖,那么表視圖的創(chuàng)建是在實例化表視圖控制器的時候完成的,表視圖顯示的時候會發(fā)出tableView:numberOfRowsInSection:消息詢問當前節(jié)中的行數(shù),表視圖單元格顯示的時候會發(fā)出tableView:cellForRowAtIndexPath:消息為單元格提供顯示數(shù)據(jù)。我們創(chuàng)建一個簡單表視圖,單元格使用默認樣式,有圖標和主標題,顯示的是世界杯球隊的信息。
使用“SingleViewApplication”模板創(chuàng)建一個工程,工程名為“SimpleTable”,打開IB設計畫面,在“ViewControllerScene”選中“ViewController”刪除控制器,然后從控件庫中拖拽一個“TableViewController”到設計畫面。
將h文件中ViewController的父類從原來的UIViewController修改為UITableViewController。在IB設計畫面左側的Scene列表中選擇“TableViewControllerScene”→“TableViewController”,打開表視圖控制器的標識檢查器,在Class選項里選擇“ViewController”,這是我們自己的編寫視圖控制器。然后在Scene列表中選擇“TableViewControllerScene”→“TableViewController”→“TableView”,打開表視圖的屬性檢查器。Content下有兩個選項“DynamicPrototypes”和“StaticCells”,這兩個選項只有在故事板中才有。“DynamicPrototypes”是構建“動態(tài)表”如果通過代碼來實現(xiàn)單元格的創(chuàng)建,“PrototypeCells”項目要設為0,代碼實現(xiàn)的模式代碼如下:
static
NSString
*CellIdentifier
=
@”CellIdentifier”;
UITableViewCell
*cell
=
[tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if
(cell
==
nil)
{
cell
=
[[UITableViewCell
alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
Identifier是可重用單元格標識符,這個可重用單元格與Collection視圖中的可重用單元格概念一樣。首先,在表視圖中查找是否有可以重用的單元格,如果沒有就通過initWithStyle:reuseIdentifier:構造方法創(chuàng)建一個單元格對象。如果要利用故事板設計單元格,要選擇“TableViewControllerScene”→“TableViewController”→“TableView”→“TableViewCell”,打開單元格的屬性檢查器,Style下有很多選項,Identifier是指可重用單元格標識符。
這樣操作以后在代碼部分就不需要實例化單元格了,我們直接通過設定的Identifier取得單元格的實例,以此達到重用單元格的目的。
static
NSString
*CellIdentifier
=
@”CellIdentifier”;
UITableViewCell
*cell
=
[tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if
(cell
==
nil)
{
cell
=
[[UITableViewCell
alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
我們需要將“team.plist”和“球隊圖片”添加到工程中,ViewController.h文件的代碼如下:
#import
<UIKit/UIKit.h>
@interface
ViewController
:
UITableViewController
@property
(nonatomic,
strong)
NSArray
*listTeams;
@end
需要將ViewController的父類修改為UITableViewController。還定義NSArray*類型的屬性listTeams,listTeams用來裝載從文件中讀取的數(shù)據(jù)。讀取屬性列表文件team.plist的操作是在viewDidLoad方法中實現(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];
}
我們再看看UITableViewDataSource協(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;
}
由于當前的這個表事實上只有一個節(jié),因此不需要對節(jié)進行區(qū)分,在tableView:numberOfRowsInSe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國聚乙烯高密度(PEHD)管行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國罐頭即食餐行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國線繞高頻電感器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國納地美定行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國筆記本電腦行業(yè)市場深度調研及調查研究報告
- 2025-2030中國私有云行業(yè)市場發(fā)展分析及投資潛力與策略規(guī)劃研究報告
- 2025-2030中國石膏板錨行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國眼部護膚行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國男式化妝品行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- 2025-2030中國電泳涂料行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 山東省臍帶血合同協(xié)議
- 2025-2030全球及中國自主汽車芯片行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 四川宜賓環(huán)球集團有限公司招聘筆試題庫2025
- 湖北省武漢市六校聯(lián)考2024-2025學年高二下學期4月期中考試化學試題(含答案)
- 小學藏文基礎知識課件下載
- 大學英語四級考試2024年6月真題(第1套)閱讀
- 浙江2025年03月溫州市龍灣區(qū)事業(yè)單位公開招考(選調)31名工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 中國海洋石油集團有限公司招聘筆試真題2024
- 2025-2030冷軋行業(yè)市場發(fā)展分析及投資前景研究報告
- 新疆維吾爾自治區(qū)2024年中考數(shù)學試卷含真題解析
- 攪拌站安裝施工方案
評論
0/150
提交評論