我的应用程序中有一个表格视图存在问题,并且想知道是否有人遇到过类似的问题。我在自定义tableviewcell中有2个标签 - questionLabel
和answerLabel
- 它们具有以下约束:
在两个UILabel上,我将行数设置为0,使它们成为多行,并将preferredmaxLayoutWidth
属性添加到两者中,如下所示:
cell.questionLabel.preferredMaxLayoutWidth = cell.questionLabel.frame.width
cell.answerLabel.preferredMaxLayoutWidth = cell.answerLabel.frame.width
根据其他StackOverflow建议,我在viewDidLoad()
方法中也有以下内容:
self.faqTableView.rowHeight = UITableViewAutomaticDimension
self.faqTableView.estimatedRowHeight = 140.00
首次加载时,即使行设置为0,标签仍然会被截断,奇怪的是标签位置不一致。但是,当向下滚动屏幕然后返回到顶部时,标签会自动校正,布局也很完美。见下面的截图:
之前有没有人遇到过这个问题,如果有的话,你可以指出我正确的方向。我不确定这是我未能设置的,还是我的自动布局限制问题。
答案 0 :(得分:2)
添加这样的约束。删除以下行
cell.questionLabel.preferredMaxLayoutWidth = cell.questionLabel.frame.width
cell.answerLabel.preferredMaxLayoutWidth = cell.answerLabel.frame.width
self.faqTableView.estimatedRowHeight = 140.00
将UILabel的行数设置为零并实现以下方法
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}