在UITableView中更新部分页脚标题而不重新加载

时间:2011-05-08 19:15:19

标签: iphone ios uitableview

我希望能够以编程方式更新表格视图中部分的页脚标题,同时我通过键盘输入文本。当我单击一个单元格以使其详细的文本视图可编辑时,会出现键盘,因此我想更新页脚标题而不从数据源重新加载。

事实上,如果我这样做,键盘会消失,因此它不是一种很好的互动形式。我无法找到解决这个问题的好方法......有什么建议吗?

谢谢

5 个答案:

答案 0 :(得分:9)

我知道我已经迟到了这个帖子,但我发现你可以这么做:

[self.tableView beginUpdates];
[self.tableView footerViewForSection:section].textLabel.text = @"Whatever";
[[self.tableView footerViewForSection:section].textLabel sizeToFit];
[self.tableView endUpdates];

答案 1 :(得分:6)

如果您有分组表,则可以使用:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    yourLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 17)]; //I'm not sure about the frame...
    yourLabel.font = [UIFont systemFontOfSize:16];
    yourLabel.shadowColor = [UIColor whiteColor];
    yourLabel.shadowOffset = CGSizeMake(0, 1);
    yourLabel.textAlignment = UITextAlignmentCenter;
    yourLabel.textColor = RGB(76, 86, 108);
    yourLabel.backgroundColor = [UIColor clearColor];
    yourLabel.opaque = NO;
    return yourLabel;
}

yourLabel文件中声明.h。然后,您可以通过

访问它
yourLabel.text = @"whatever you want";

请检查是否有效:)

答案 2 :(得分:2)

第一部分(ziro)

  

[self.tableView footerViewForSection:0] .textLabel.text = @“test”;

答案 3 :(得分:2)

Mark Alldritt的答案很好,但有时它并没有正确调整标签的大小。下面的固定示例(对于section == 0):

[self.tableView beginUpdates];
UILabel *footerLabel = [self.tableView footerViewForSection:0].textLabel;

footerLabel.text = [self tableView:self.tableView titleForFooterInSection:0];
CGRect footerLabelFrame = footerLabel.frame;
footerLabelFrame.size.width = self.tableView.bounds.size.width;
footerLabel.frame = footerLabelFrame;
[self.tableView endUpdates];

答案 4 :(得分:0)

迅速5回答

tableView.beginUpdates()

tableView.footerView(forSection: 0)?.textLabel?.text = "Text Here"

tableView.endUpdates()