您好,登錄后才能下訂單哦!
表示圖是顯示表數(shù)據(jù)的試圖對象,它是UITableView類的一個實(shí)例。表中的每個課件的行都是UITableViewCell類實(shí)現(xiàn)。因此,表示圖是顯示表中可見部分對象,表試圖單元負(fù)責(zé)顯示表中的一行。
表示圖并不負(fù)責(zé)存儲表中的數(shù)據(jù)。他們只存儲足夠繪制當(dāng)前可見行的數(shù)據(jù)。表示圖從遵循UITableViewLegate協(xié)議的對象獲取配置數(shù)據(jù),從遵循UITableViewDataSource協(xié)議的對象獲得行數(shù)據(jù)。
表示圖分為兩種基本樣式。一種是分組表。另一類是索引表。表中的每個部分被稱為數(shù)據(jù)源中的分區(qū)(section)。
實(shí)現(xiàn)一個簡單的表
1、打開程序創(chuàng)建一個Simple_TableViewController的項目,單擊大打開 Simple_TableViewController.xib,View窗口應(yīng)該已經(jīng)打開,因此,在庫中找到TableView,并將它拖到View窗口中即可。
2、將TableView關(guān)聯(lián)到文件,只需連接到File‘s Owner 。這樣控制器類就成了此表的數(shù)據(jù)源和委托。
3、打開Simple_TableViewController.h,添加下面代碼
#import <UIKit/UIKit.h>
@interface Simple_TableViewController:UIViewController<UITableViewDelegate,UITableViewDataSource>
{
NSArray *listData;
}
@property(nonatomic,retain) NSArray *listData;
@end
4、在Simple_TableViewController.m里添加。頭文件不寫了。
@synthesize listData;
-(void)viewDidLoad{
NSArray *array=[[NSArray alloc]initWithObjects:@"dsda",@"erwerwe",@"dsada",nil];
self.listData=array;
[array release];
[super viewDidLoad];
//自動生成的代碼我急不寫了
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.listData count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * SimpleTableIdentifier= @"simpleTableIdentifier";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifiter:SimpleTableIdentifier];
if(cell==nil){
cell=[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:SimpleTableIdentifier] autorelease];
}
NSUInterger row=[indexPath row];
cell.text=[listData objectAtIndex:row];
return cell;
}
}
第一個方法是tableView:
numberOfRowsInSection:,表使用它來查看指定分區(qū)中有多少行。正如你所希望的,默認(rèn)的分區(qū)
數(shù)量為1,此方法用于返回組成列表的表分區(qū)中的行數(shù)。只需返回數(shù)組中數(shù)組項的數(shù)量即可。
下一個方法可能需要一些解釋,讓我們更仔細(xì)地看一下此方法:
當(dāng)表視圖需要繪制其中一行時,則會調(diào)用此方法。你會注意到此方法的第二個參數(shù)是一個
NSIndexPath實(shí)例。表視圖正是使用此機(jī)制把分區(qū)和行綁定到一個對象中的。要從NSIndexPath中
獲得一行或一個分區(qū),只需要調(diào)用行方法或分區(qū)方法就可以了,這兩個方法都返回一個int值。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。