您的位置:首页 > 移动开发 > IOS开发

ios学习--TableView详细解释

2013-09-17 16:42 357 查看


ios学习--TableView详细解释




-、建立 UITableView


DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];


[DataTable setDelegate:self];


[DataTable setDataSource:self];


[self.view addSubview:DataTable];


[DataTable release];


二、UITableView各Method说明


//Section总数


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView


{


return TitleData;


}


// Section Titles


//每个section显示的标题


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section


{


return @"";


}


//指定有多少个分区(Section),默认为1


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 


{


return 4;


}


//指定每个分区中有多少行,默认为1


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section


{                   


return 1;


}


//绘制Cell


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath


 {


static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];


if (cell == nil) {


cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault


reuseIdentifier: SimpleTableIdentifier] autorelease];


}


cell.imageView.image=image;//未选cell时的图片


cell.imageView.highlightedImage=highlightImage;//选中cell后的图片


cell.text=//.....


return cell;


}


//行缩进


-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath


{


NSUInteger row = [indexPath row];


return row;


}


//改变行的高度


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath


{


return 40;


}


//定位


[TopicsTable setContentOffset:CGPointMake(0, promiseNum * 44 + Chapter * 20)];


//返回当前所选cell


NSIndexPath *ip = [NSIndexPath indexPathForRow:row inSection:section];


[TopicsTable selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionNone];


[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];


//选中Cell响应事件


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


{


[tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失


}


//判断选中的行(阻止选中第一行)


-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath


{


NSUInteger row = [indexPath row];


if (row == 0)


return nil;


return indexPath;


}


//划动cell是否出现del按钮


- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {


}


//编辑状态


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle


forRowAtIndexPath:(NSIndexPath *)indexPath


{



[topicsTable setContentSize:CGSizeMake(0,controller.promiseNum * 44)];


//右侧添加一个索引表


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{


}


//返回Section标题内容


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{


}


//自定义划动时del按钮内容


- (NSString *)tableView:(UITableView *)tableView


titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath


//跳到指的row or section


[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositio
nBottom animated:NO];


三、在UITableViewCell上建立UILable多行显示


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


static NSString *CellIdentifier = @"Cell";


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


if (cell == nil) {


cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];


UILabel *Datalabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 320, 44)];


[Datalabel setTag:100];


Datalabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;


[cell.contentView addSubview:Datalabel];


[Datalabel release];


}


UILabel *Datalabel = (UILabel *)[cell.contentView viewWithTag:100];


[Datalabel setFont:[UIFont boldSystemFontOfSize:18]];


Datalabel.text = [data.DataArray objectAtIndex:indexPath.row];


cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;


return cell;


}


//选中cell时的颜色


typedef enum {


UITableViewCellSelectionStyleNone,


UITableViewCellSelectionStyleBlue,


UITableViewCellSelectionStyleGray


} UITableViewCellSelectionStyle


//cell右边按钮格式


typedef enum {


UITableViewCellAccessoryNone,   // don't show any accessory view


UITableViewCellAccessoryDisclosureIndicator, // regular chevron. doesn't track


  UITableViewCellAccessoryDetailDisclosureButton, // blue button w/ chevron. tracks


UITableViewCellAccessoryCheckmark // checkmark. doesn't track


} UITableViewCellAccessoryType


//是否加换行线


typedef enum {


UITableViewCellSeparatorStyleNone,


UITableViewCellSeparatorStyleSingleLine


} UITableViewCellSeparatorStyle//改变换行线颜色


tableView.separatorColor = [UIColor blueColor];


 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息