自动布局问题 - 垂直间距

时间:2018-01-01 13:22:03

标签: ios swift autolayout interface-builder

在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
    }

enter image description here

enter image description here

问题我为每个单元格获得了相同的labelQuestion高度,但文本大小和行大小不同。怎么解决这个? :C

enter image description here

2 个答案:

答案 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
}

希望它对你有所帮助