Swift ios 表格视图单元格中的文本视图未以正确的大小生成

Swift ios textview in tableview cell not generated in correct size

我有单元格,在那个单元格视图中有文本视图。在 textview 上,边框底部带有 EZSwiftExtensions.

现在的问题是第一次加载时边框不是全宽,但是当我向下滚动并滚动到顶部时,边框是全宽。

为什么会这样?

应用加载时:

向下滚动并返回顶部时:

单元格 xcode:

小区代码:

import UIKit
import EZSwiftExtensions

class JokeTableViewCell: UITableViewCell {

    var item: Joke! {
        didSet {
            cellView.setCornerRadius(radius: 4)
            hearthImg.image = UIImage(named: "HearthWhite")
            starImg.image = UIImage(named: "StarWhite")
            txtLabel.addBorderBottom(size: 1, color: UIColor.lightGrayColor())
            setupCell()
        }
    }

    @IBOutlet weak var cellView: UIView!
    @IBOutlet weak var authorLabel: UILabel!
    @IBOutlet weak var txtLabel: UILabel!
    @IBOutlet weak var hearthImg: UIImageView!
    @IBOutlet weak var likesLabel: UILabel!
    @IBOutlet weak var starImg: UIImageView!
    @IBOutlet weak var scoreLabel: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }

    func setupCell() {
        authorLabel.text = item.creator
        if item.creator == "" {
            authorLabel.text = "Aninomno"
        }
        txtLabel.text = item.text
        if item.liked == true {
            hearthImg.image = UIImage(named: "HearthRed")
        }
        if item.rated == true {
            starImg.image = UIImage(named: "StarYellow")
        }
        likesLabel.text = item.likes.toString
        scoreLabel.text = item.score.toString
    }

}

我需要它始终是全角。

addBorderBottom 的实现不是很好。您可以覆盖 layoutSubviews 并在那里使用 addBorderBottom,它应该可以工作。然而,该方法被多次调用,您最终将有多个边框一个接一个地堆叠。 您可以通过使用高度为 1px 的 UIView 作为子视图和一些边距限制来实现自己的边框,我认为这是最简单的解决方案。