自动布局问题 - 垂直间距

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动布局问题 - 垂直间距相关的知识,希望对你有一定的参考价值。

在带有Swift 3的Xcode 8中,我使用自定义单元格进行自动布局。从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

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

enter image description here

答案

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

希望它对你有所帮助

另一答案

1-设置垂直内容拥抱优先权今天标签为1000

2-将标签底部[在今天的标签下]钩到图像的顶部

3-最下面的标签底部到contentView的底部

编辑:

在cellForRowAt中返回单元格之前添加这两行

  cell.layoutSubviews()

  cell.layoutIfNeeded()

以上是关于自动布局问题 - 垂直间距的主要内容,如果未能解决你的问题,请参考以下文章

垂直自动布局子视图

unity 自动排版(Vertical Layout Group)

UIScrollView 上具有垂直间距的动态 UIButton

使用自动布局检索子视图的正确位置

iOS 自动布局 >> 视图没有改变它的大小

iPad纵向和横向的自动布局iOS8