我想实现一些代码,它们在tableView的一个部分(viewDidAppear
或viewWillAppear
方法)中更改页脚文本。但是我怎么能这样做呢?
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
不符合我的要求(在加载tableView期间它只更改一次,但我需要在tableView单元格中的文本更改后更改页脚的文本。
答案 0 :(得分:3)
-(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 120;
}
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if (section == 0) {
return @"Things We'll Learn";
} else {
return @"Things Already Covered";
}
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[tableView reloadData];
}
答案 1 :(得分:1)
实施viewForFooterInSection
并在那里添加textField
。还要将textField设为属性。
完成tableViewCells的编辑后,实现textFieldDidEndEditing
方法并将必要的值分配给footerView的textField。
设置textField后,使用[tableView reloadData]
再次实现viewForFooterInSection
,它现在可以正常工作。
修改强>
如果要在编辑UITableViewCell后更改“页脚”部分的标题,
设置全局变量或使用NSUserDefaults
表示已编辑tableViewCell
。
self.tableView reloadData
。
在方法titleForFooterInSection
中检查该变量(这意味着已经编辑了tableView)并相应地设置标题。
答案 2 :(得分:0)
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
if(section == 1)
{
// For Lable
UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 40)] autorelease];
tableView.sectionHeaderHeight = view.frame.size.height;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, view.frame.size.width - 20, 44)];
label.text = [self tableView:tableView titleForHeaderInSection:section];
label.font = [UIFont boldSystemFontOfSize:16.0];
label.shadowOffset = CGSizeMake(0, 1);
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.adjustsFontSizeToFitWidth = YES;
[label setLineBreakMode:NSLineBreakByTruncatingTail];
[label setNumberOfLines:0];
label.text = @“Your Text Here…..your Text Here”;
[view addSubview:label];
[label release];
return view;
}
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
if(section == 1)
{
return 60.0;
}
return 0;
}