IOS4 UITableView详解

来源:互联网 发布:手机导航需要网络吗 编辑:程序博客网 时间:2024/06/06 03:08



UITableView详解

// 创建 UITableView(所在类中要遵从UITableView UITableViewDataSource UITableViewDelegate 协议)

UITableView  *dataTable = [[UITableViewalloc] initWithFrame:CGRectMake(0,0,320,420)];

dataTable.delegate =self;

dataTable.dataSource =self;

[self.view addSubview:dataTable];

[dataTablerelease];


// UITableViewMethod说明


// Section总数

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

{

return TitleData;

}


// Section 显示的标题

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

{

return@"sectionA";

}


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

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return4;

}


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

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

{

return1;

}


// 绘制Cell

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

{

staticNSString *SimpleTableIdentifier =@"SimpleTableIdentifier";

    

   UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:

                             SimpleTableIdentifier];

if (cell ==nil)

{

        cell = [[[UITableViewCellalloc] 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 = [indexPathrow];

return row;

}


// 改变行的高度

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

{

return40;

}


// 选中Cell响应事件

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

{

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

}


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

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

{

NSUInteger row = [indexPathrow];

if (row ==0)

{

returnnil;

}

return indexPath;

}


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

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

{

}


// 编辑状态

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

forRowAtIndexPath:(NSIndexPath *)indexPath

{

}


// 右侧添加一个索引表

- (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:UITableViewScrollPositionBottom animated:NO];



// 返回当前所选cell

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

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



// 设置分割线

[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];


// 定位

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


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


// 设置分割线

[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];


// 选中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];


// 去掉cell的选中背景

[tableViewdeselectRowAtIndexPath:indexPath animated:YES];


// 设置分割线

[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];


// UITableViewCell上建立UILable多行显示

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

{

staticNSString *CellIdentifier =@"Cell";

UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:CellIdentifier];

if (cell ==nil)

{

cell = [[[UITableViewCellalloc] initWithFrame:CGRectZeroreuseIdentifier:CellIdentifier] autorelease];

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

[datalabelsetTag:100];

datalabel.autoresizingMask =UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight;

[cell.contentViewaddSubview:datalabel];

[datalabelrelease];

}

UILabel *datalabel = (UILabel *)[cell.contentViewviewWithTag:100];

[datalabel setFont:[UIFontboldSystemFontOfSize:18]];

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

cell.accessoryType =UITableViewCellAccessoryDisclosureIndicator;

return cell;

}



原创粉丝点击