表格标题:多行/自动换行

boo*_*six 7 header word-wrap uitableview swift

我正在尝试创建一个表格,其中节标题可以是长字符串.我以为我有正确的设置(动态行数,自动换行集),但字符串在结尾处被截断.请注意,节标题的大小高度为80,在其他地方,这足以显示大约3行文本.

// Format section header
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {

    let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
    header.contentView.backgroundColor = mainColorBlue
    header.textLabel.textColor = UIColor.whiteColor()

    header.textLabel.textAlignment = NSTextAlignment.Left
    header.textLabel.numberOfLines = 0 // Dynamic number of lines
    header.textLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
    header.textLabel.font = UIFont(name: "HelveticaNeue-Thin", size: 16)!
    header.textLabel.text = objectsArray[section].sectionName

}
Run Code Online (Sandbox Code Playgroud)

bri*_*ear 1

我做了相反的事情,我将行数设置为一个巨大的数字,然后动态大小就可以了。

  • 在IB中
  • 不要设置任何 WIDTH/HEIGHT 常量
  • 仅 TableViewCells 中控件周围的前导尾随/顶部/底部

self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension; self.tableView.estimatedSectionHeaderHeight = 25;

- (void)viewDidLoad
{
    [super viewDidLoad];

    //-----------------------------------------------------------------------------------
    //DYNAMIC TEXT and TABLE ROW HEIGHT
    //-----------------------------------------------------------------------------------
    self.tableView.estimatedRowHeight = 80.0f;
    //also done in heightForRowAtIndexPath
    self.tableView.rowHeight = UITableViewAutomaticDimension;

    self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension;
    self.tableView.estimatedSectionHeaderHeight = 80.0f;

}
//comment out
//- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
Run Code Online (Sandbox Code Playgroud)

另请参阅 是否可以使用自动布局获取动态表视图部分标题高度?