UITableView应用(一)UITableViewDelegate方法总结
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// indexPath.section,根据分组进行更精确的配置
return 90.0;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return [_arrayType objectAtIndex:section];
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 30.0;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
// 自定义的Header
ViewForCellHeader *headerView=[[[ViewForCellHeader alloc] init] autorelease];
headerView.strSectionName=[_arrayType objectAtIndex:section];
return [headerView view];
}
注意:2与4是互斥的。
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
return [_arrayType objectAtIndex:section];
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
// indexPath.section,根据分组进行更精确的配置
return 30.0;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
// 自定义的Footer
ViewForCellHeader *headerView=[[[ViewForCellHeader alloc] init] autorelease];
headerView.strSectionName=[_arrayType objectAtIndex:section];
return [headerView view];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return [_arrayType objectAtIndex:section];
}
UITableView应用(二)UITableViewDataSource 方法总结
NSMutableArray *_arrayType;// 分组
1.返回分组数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [_arrayType count];
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
NSString *curType=[_arrayType objectAtIndex:section];
return [[_dictData objectForKey:curType] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath
*)indexPath{
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
NSString *key=[_arrayType objectAtIndex:section];
NSMutableArray *arrValues=[_dictData objectForKey:key];
static NSString *CellIdentifier = @"WTVChannelCell";
// 自定义cell
WTVChannelCell *cell = (WTVChannelCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil){
cell = [[[WTVChannelCell alloc] initWithStyle:UITableViewCellSelectionStyleGray
reuseIdentifier:CellIdentifier]
autorelease];
NSArray *array =
[[NSBundle mainBundle] loadNibNamed:@"WTVChannelCell" owner:nil
options:nil];
cell =
[array objectAtIndex:0];
}
cell.dictChannelData=[arrValues objectAtIndex:row];
[cell refreshCellData];
return cell;
}