ios – 如何根据文本标签长度动态设置表格单元格高度?

我正在尝试学习Obj-C和iOS编程,但还是很新的.我决定尝试制作一个简单的Reddit客户端应用程序.我试图在UITableView中显示首页帖子,每个帖子都由自己的单元格表示.

在单元格中,我是如何设置标题的:

cell.textLabel.numberOfLines = 0;
cell.textLabel.text = [[tempDictionary objectForKey:@"data"] objectForKey:@"title"];   
[cell.textLabel sizeToFit];

但是,如果标题文本太长,单元格将自动剪裁.这是一张照片:

如何使我的单元格自动调整其高度以适应更长的标题标签,而不会与其他单元格或详细文本标签相交?

感谢您的任何帮助!

解决方法

对于新的iOS 8,有一个新的方法来使这个简单.

有一个新的参数可以计算您的自动布局约束的单元格高度.这是UITableViewAutomaticDimension.您可以在视图控制器的viewWillAppear方法中使用它.

目标C:

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  self.tableView.estimatedRowHeight = 70.0; // for example. Set your average height 
  self.tableView.rowHeight = UITableViewAutomaticDimension;
  [self.tableView reloadData];
}

迅速:

override func viewWillAppear(animated: Bool) {
    self.tableView.estimatedRowHeight = 70 // for example. Set your average height 
    self.tableView.rowHeight = UITableViewAutomaticDimension
    self.tableView.reloadData()

}

工作很好,就像你想要的那样.对于我来说,我在viewDidLoad中添加高度的东西,并在viewWillAppear中留下reloadData().还有一个很有用的source.

从文档:rowHeight的默认值为UITableViewAutomaticDimension.我现在离开代码,但是请记住,您不需要在iOS 8中设置行高.

您需要做的主要事情是明确设置所有约束.到领先,尾随,顶部和底部.先尝试一下,不要在上面添加任何代码行.

以上是来客网为你收集整理的ios – 如何根据文本标签长度动态设置表格单元格高度?全部内容,希望文章能够帮你解决ios – 如何根据文本标签长度动态设置表格单元格高度?所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。