gpt4 book ai didi

objective-c - UITableView - 直接设置 tableHeaderView 属性与实现 -viewForHeaderInSection 方法

转载 作者:可可西里 更新时间:2023-11-01 03:22:42 27 4
gpt4 key购买 nike

直接设置tableHeaderView/tableFooterView属性有什么区别:

UIView *headerView =  [[UIView alloc] init...];
tableView.tableHeaderView = headerView;
[headerView release];

并实现 viewForHeaderInSection/viewForFooterInSection 方法?:

- (UIView *)tableView:(UITableView *)tableView 
viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[[HeaderView alloc] init...] autorelease];
return headerView;
}

最佳答案

第一个是表格的标题,第二个会让您有机会为表格中的每个部分添加一个标题。

绿色是 tableViewHeader,蓝色是 sectionHeaders。

enter image description here

-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if (headerView == nil) {
[[NSBundle mainBundle] loadNibNamed:@"DetailContactHeader" owner:self options:nil];
headerView.nameLabel.text = [NSString stringWithFormat:@"%@ %@",
[contact objectForKey:@"name"],
[contact objectForKey:@"familyname"]];
if ([[contact allKeys] containsObject:@"pictureurl"]) {
headerView.avatarView.image = [UIImage imageNamed:[contact objectForKey:@"pictureurl"]];
}
}
[self.tableView setTableHeaderView: headerView];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}

- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return [[contact allKeys] count]-3;
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2
reuseIdentifier:CellIdentifier] autorelease];
}

id key = [self.possibleFields objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"%@", key];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@", [contact objectForKey:key]];
return cell;
}

-(CGFloat) tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section
{
return 44.0;
}

-(UIView *) tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section
{
UILabel *l = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
l.backgroundColor = [UIColor clearColor];
l.text= @"I am a Section Header";
return l;
}

您可以在此处找到此应用程序的代码:MyContacts

关于objective-c - UITableView - 直接设置 tableHeaderView 属性与实现 -viewForHeaderInSection 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446979/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com