swift 滚动时 tableViewCell 的高度和宽度发生变化

Height and Width of tableViewCell changes on scrolling in swift

我正在开发套接字基础聊天模块。我在一个 tableView 中出于不同目的使用了 5 个不同的自定义单元格。当我滚动 tableView 时,它会更改某些单元格的布局、宽度和高度。请帮帮我。我已经经历了太多 Whosebug 的问题,但我的问题没有得到解决。

如果您在故事板上设置了自动行高或宽度,请取消单击它,这可能会改变布局。 在视图控制器中,您可以像这样设置高度;

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {}

我正在使用扩展程序来为我的单元格设置圆角。该扩展导致了问题。我正在使用以下扩展程序。

    extension UIView {
   func roundCorners(corners: UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        layer.mask = mask
    }
}

为了解决我的问题,我在 tableViewCell 中使用了以下代码

 override func prepareForReuse() {
        super.prepareForReuse()
        self.layoutIfNeeded()

        self.chatTextView.clipsToBounds = true
              chatTextView.layer.cornerRadius = 10
        chatTextView.layer.maskedCorners = [.layerMaxXMaxYCorner, .layerMinXMaxYCorner, .layerMaxXMinYCorner]

        //set the cell to initial state here
        //set like the button to initial state - title, font, color, etc.
    }

}

现在我的细胞工作正常:)