当前位置 : 主页 > 手机开发 > ios >

ios – UITableView – 节标题.如何更改文字?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有一个使用Storyboard的项目.我有一个带静态单元格和组样式的UITableView. 我需要在一个部分中更改部分文本,具体取决于在分段控件中进行的选择(在另一部分中) 我找到了一些解决方案
我有一个使用Storyboard的项目.我有一个带静态单元格和组样式的UITableView.

我需要在一个部分中更改部分文本,具体取决于在分段控件中进行的选择(在另一部分中)

我找到了一些解决方案,表明你应该使用覆盖这个方法:
 

– (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

并通过调用触发更新:

[[self tableView] reloadSections:[NSIndexSet indexSetWithIndex:SectionToChange] withRowAnimation:UITableViewRowAnimationFade];

问题是当我调用reloadSections时,相关部分中的所有行和单元格都会被删除.文本更新正确,但有这种不必要的副作用.

我想我在这里找到了答案: Changing UITableView section header without tableView:titleForHeaderInSection

它可能不是很优雅,但接缝工作.

我可以通过调用以下方法仅触发对节头的更新,而不会产生任何不必要的副作用:

    [self.tableView headerViewForSection:1] .textLabel.text = [self tableView:self.tableView titleForHeaderInSection:1];

所以唯一需要的是实现:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
   if (section == 1){
      if (self.segmentX.selectedSegmentIndex == 0) // or some condition
         return @"Header one";
      else
         return @"Header two";
  }
  return nil;
}
网友评论