Это мой код:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MyChatCell
if(x){
cell.width = 100
} else {
cell.width = 300
}
}
И я управляю по приведенному ниже коду:
class MyChatCell: UITableViewCell {
var width: Int = 0
override var frame: CGRect {
get {
return super.frame
}
set (newFrame) {
var frame = newFrame
var newWidth = frame.width
if(width > 0){
newWidth = CGFloat(width)
}
frame.size.width = newWidth
super.frame = frame
}
}
}
Этот код работает, но иногда при перезагрузке данных или таблицы прокрутки, ширина не установленаисправить для этой строки ячеек
Это пример для обычного просмотра:
======= one =======
=== two ===
Если я прокручиваю или перезагружаю данные, показывайте ниже вид:
======= one =======
======= два =======