在Xcode 8中使用Swift 3我使用自定义单元格进行自动布局。从JSON插入的单元格信息,所以我的代码如下:
//the method returning each cell of the list
public override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = self.tableView.dequeueReusableCell(withIdentifier: "Feedcell", for: indexPath) as! FruitTableViewCell
//getting the hero for the specified position
let hero: List_Feed
hero = heroes[indexPath.row]
cell.labelAnswer.text = hero.answer
cell.labelQuestion.lineBreakMode = .byWordWrapping
cell.labelQuestion.text = hero.question
cell.labelQuestion.sizeToFit()
cell.labelAnswer.sizeToFit()
return cell
}
问题我为每个单元格获得了相同的labelQuestion高度,但文本大小和行大小不同。怎么解决这个? :C
答案 0 :(得分:0)
1-设置垂直内容拥抱优先权今天标签为1000
2-将标签底部[今天标签下]挂在图像顶部下方
3-最下层标签的底部到contentView的底部
编辑:
在 cellForRowAt
中的返回单元格之前添加此2行 cell.layoutSubviews()
cell.layoutIfNeeded()
答案 1 :(得分:0)
当Cell重复使用标签时您必须在用于下一个单元格之前清空标签
public override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = self.tableView.dequeueReusableCell(withIdentifier: "Feedcell", for: indexPath) as! FruitTableViewCell
//EMPTY LABELS
cell.labelAnswer.text = ""
cell.labelQuestion.text = ""
self.layoutIfNeeded()
//getting the hero for the specified position
let hero: List_Feed
hero = heroes[indexPath.row]
cell.labelAnswer.text = hero.answer
cell.labelQuestion.lineBreakMode = .byWordWrapping
cell.labelQuestion.text = hero.question
cell.labelQuestion.sizeToFit()
cell.labelAnswer.sizeToFit()
return cell
}
希望它对你有所帮助