现在的位置: 首页 > 综合 > 正文

IOS4 UITableView详解

2013年01月12日 ⁄ 综合 ⁄ 共 4715字 ⁄ 字号 评论关闭

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;

}

抱歉!评论已关闭.