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.
}
}
现在我的细胞工作正常:)
我正在开发套接字基础聊天模块。我在一个 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.
}
}
现在我的细胞工作正常:)