TableviewController基础
表示图是显示表数据的试图对象,它是UITableView类的一个实例。表中的每个课件的行都是UITableViewCell类实现。因此,表示图是显示表中可见部分对象,表试图单元负责显示表中的一行。
表示图并不负责存储表中的数据。他们只存储足够绘制当前可见行的数据。表示图从遵循UITableViewLegate协议的对象获取配置数据,从遵循UITableViewDataSource协议的对象获得行数据。
表示图分为两种基本样式。一种是分组表。另一类是索引表。表中的每个部分被称为数据源中的分区(section)。
实现一个简单的表
1、打开程序创建一个Simple_TableViewController的项目,单击大打开Simple_TableViewController.xib,View窗口应该已经打开,因此,在库中找到TableView,并将它拖到View窗口中即可。
2、将TableView关联到文件,只需连接到File‘sOwner。这样控制器类就成了此表的数据源和委托。
3、打开Simple_TableViewController.h,添加下面代码
#import<UIKit/UIKit.h>
@interfaceSimple_TableViewController:UIViewController<UITableViewDelegate,UITableViewDataSource>
{
NSArray*listData;
}
@property(nonatomic,retain)NSArray*listData;
@end
4、在Simple_TableViewController.m里添加。头文件不写了。
@synthesizelistData;
-(void)viewDidLoad{
NSArray*array=[[NSArrayalloc]initWithObjects:@"dsda",@"erwerwe",@"dsada",nil];
self.listData=array;
[arrayrelease];
[superviewDidLoad];
//自动生成的代码我急不写了
-(NSInteger)tableView:(UITableView*)tableViewnumberOfRowsInSection:(NSInteger)section{
return[self.listDatacount];
}
-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{
staticNSString*SimpleTableIdentifier=@"simpleTableIdentifier";
UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifiter:SimpleTableIdentifier];
if(cell==nil){
cell=[[UITableViewCellalloc]initWithFrame:CGRectZeroreuseIdentifier:SimpleTableIdentifier]autorelease];
}
NSUIntergerrow=[indexPathrow];
cell.text=[listDataobjectAtIndex:row];
returncell;
}
}
第一个方法是tableView:
numberOfRowsInSection:,表使用它来查看指定分区中有多少行。正如你所希望的,默认的分区
数量为1,此方法用于返回组成列表的表分区中的行数。只需返回数组中数组项的数量即可。
下一个方法可能需要一些解释,让我们更仔细地看一下此方法:
当表视图需要绘制其中一行时,则会调用此方法。你会注意到此方法的第二个参数是一个
NSIndexPath实例。表视图正是使用此机制把分区和行绑定到一个对象中的。要从NSIndexPath中
获得一行或一个分区,只需要调用行方法或分区方法就可以了,这两个方法都返回一个int值。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。