-、建立 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{
}
//
绘制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:UITableViewScrollPositionBottom 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];