У меня есть настроенное представление для добавления в мою ячейку containsView.
Но когда я обновляю свои данные и использую reloadData для перезагрузки таблицы.
Вид не меняется, как будто ничего не происходит.
Я хочу добавить один элемент "A6" на мой взгляд.
Что со мной не так.
Есть идеи, чтобы обновить вид? Спасибо.
Мой вид как у следующего изображения.
Обновление элементов происходит в соответствии с массивом информации.
class ViewController: UIViewController {
var alreadyLoadCell: Bool = false
var initInfos = [Info(name: A1, color: UIColor.A1), Info(name: A2, color: UIColor.A2), Info(name: A3, color: UIColor.A3), Info(name: A4, color: UIColor.A4), Info(name: A5, color: UIColor.A5)]
var updateInfos = [Info(name: A1, color: UIColor.A1), Info(name: A2, color: UIColor.A2), Info(name: A3, color: UIColor.A3), Info(name: A4, color: UIColor.A4), Info(name: A5, color: UIColor.A5), Info(name: A6, color: UIColor.A6)]
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let customCell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! CustomTableViewCell
if alreadyLoadCell == false {
customCell.initCell(infos: initInfos)
alreadyLoadCell = true
}else{
//TODO: reloadData to update cell
customCell.updateCell(infos: updateInfos)
}
return customCell
}
return UITableViewCell()
}
}
class CustomTableViewCell: UITableViewCell {
var testItemView: UIView?
func initCell(infos: [Info]) {
self.testItemView = createItemView(infos: infos)
self.contentView.addSubview(testItemView!)
testItemView?.snp.makeConstraints { (make) in
make.left.equalTo(13)
make.top.equalTo(10)
make.right.equalTo(-13)
make.height.equalTo(195)
make.bottom.equalTo(-10)
}
}
func updateCell(infos: [Info]) {
self.testContainView = createItemView(infos: infos)
//How to update successful?
}
func createItemView(infos: [Info]) -> UIView {
let contentView = UIView()
var serialNumber = 0
var previousView: TitleView?
for info in infos {
let view = TitleView(assets: info, color: info.color)
contentView.addSubview(view)
switch serialNumber {
case 0: //A1
view.snp.makeConstraints { (make) in
make.left.equalTo(15)
make.width.equalTo(135)
make.top.equalToSuperview()
}
previousView = view
case 1: //A2
view.snp.makeConstraints { (make) in
make.right.equalToSuperview().offset(-15)
make.width.equalTo(135)
make.top.equalToSuperview()
}
previousView = view
case 2: //A3
view.snp.makeConstraints { (make) in
make.left.equalTo(15)
make.width.equalTo(135)
make.top.equalTo((previousView?.snp.bottom)!).offset(5)
}
previousView = view
case 3: //A4
view.snp.makeConstraints { (make) in
make.right.equalToSuperview().offset(-15)
make.width.equalTo(135)
make.centerY.equalTo((previousView?.snp.centerY)!)
}
previousView = view
case 4: //A5
view.snp.makeConstraints { (make) in
make.left.equalTo(15)
make.width.equalTo(135)
make.top.equalTo((previousView?.snp.bottom)!).offset(5)
}
previousView = view
case 5: //A6
view.snp.makeConstraints { (make) in
make.right.equalToSuperview().offset(-15)
make.width.equalTo(135)
make.centerY.equalTo((previousView?.snp.centerY)!)
}
previousView = view
default:
break
}
serialNumber += 1
}
return contentView
}
}