UIView iOS 15 скрыт в пользовательской ячейке UITableViewCell

#swift #uitableview #ios15

#быстрый #uitableview #ios15

Вопрос:

Я создал пользовательское представление разделителя для своей ячейки UITableViewCell. В iOS 15 представление разделителя остается скрытым, но до iOS 15 оно работает хорошо. В чем может быть причина этой проблемы?

Представление разделителя остается скрытым в iOS 15

 var countArray = [0,0,0,0] {  didSet {  if isFailed {  isLoading = false  numberOfRows = 5  let addBy = 44  tableView.snp.updateConstraints { (make) in  make.height.equalTo(286 addBy)  }  layoutIfNeeded()  } else if !(shouldShowFetchMoreCards ?? false) {  tableView.snp.updateConstraints { (make) in  make.height.equalTo(286)  }  layoutIfNeeded()  numberOfRows = 4  } else if let unread = countArray.last {  numberOfRows = unread == 0 ? 5 : 4  let addBy = unread == 0 ? 44 : 0  tableView.snp.updateConstraints { (make) in  make.height.equalTo(286 addBy)  }  layoutIfNeeded()  } else {  tableView.snp.updateConstraints { (make) in  make.height.equalTo(286)  }  layoutIfNeeded()  numberOfRows = 4  }  if let x = superview as? UITableView {  x.beginUpdates()  x.endUpdates()  }  } }   var numberOfRows = 4 {  didSet {  isLoading = (countArray.first ?? 0) == 0  tableView.reloadData()  } }   var isLoading: Bool = true var isFailed: Bool = false {  didSet {  if isFailed {  isLoading = false  numberOfRows = 5  let addBy = 44  tableView.snp.updateConstraints { (make) in  make.height.equalTo(286 addBy)  }  layoutIfNeeded()  } else {  isLoading = true  tableView.snp.updateConstraints { (make) in  make.height.equalTo(286)  }  layoutIfNeeded()  numberOfRows = 4  }  if let x = superview as? UITableView {  x.beginUpdates()  x.endUpdates()  }  } }   lazy var tableView: UITableView = {  let tv = UITableView()  tv.separatorStyle = .none  tv.estimatedRowHeight = 60  tv.rowHeight = UITableView.automaticDimension  tv.register(NewGoalTableViewCell.self, forCellReuseIdentifier: "cell")  tv.register(UITableViewCell.self, forCellReuseIdentifier: "fetch")  tv.register(LibraryHeaderTVView.self, forHeaderFooterViewReuseIdentifier: "header")  tv.backgroundColor = .clear  tv.delegate = self  tv.dataSource = self  tv.isScrollEnabled = false  return tv }()  func setupViews() {  if #available(iOS 15.0, *) {  tableView.sectionHeaderTopPadding = .zero  }  backgroundColor = .clear  self.contentView.addSubview(containerView)  self.contentView.addSubview(tableView)  tableView.snp.makeConstraints { (make) in  make.top.equalTo(self.contentView).offset(2)  make.height.equalTo(286)  make.left.equalTo(self.contentView).offset(padding)  make.right.equalTo(self.contentView).offset(-padding)  make.bottom.equalTo(self.contentView).offset(-2)  }  containerView.snp.makeConstraints { (make) in  make.left.equalTo(tableView)  make.right.equalTo(tableView)  make.top.bottom.equalTo(self.contentView)  }  layoutIfNeeded()  }  extension GoalListTVCell: UITableViewDelegate, UITableViewDataSource {    func numberOfSections(in tableView: UITableView) -gt; Int {  return 1  }    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -gt; Int {  return numberOfRows  }    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -gt; UITableViewCell {  if indexPath.row == 4 {  let cell = tableView.dequeueReusableCell(withIdentifier: "fetch", for: indexPath)  cell.selectionStyle = .default  let v = UIView()  v.backgroundColor = .lightGray  v.alpha = 0.75  cell.addSubview(v)  v.snp.makeConstraints { (make) in  make.left.equalTo(cell).offset(3*padding 35)  make.right.equalTo(cell).offset(-padding)  make.top.equalTo(cell)  make.height.equalTo(0.5)  }  cell.textLabel?.text = isFailed ? " FAILED, CLICK TO TRY AGAIN!" : " FETCH MORE CARDS"  cell.textLabel?.font = TextProperty.likes.font  cell.textLabel?.textColor = isFailed ? Color.incorrectAnswer.value : Color.theme.value  cell.accessoryType = isFailed ? .none : .disclosureIndicator  return cell  }  guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? NewGoalTableViewCell else { return UITableViewCell() }  cell.goal = goals[indexPath.row]  if isFailed {  cell.timer?.invalidate()  cell.countLabel.text = "Oh snap, failed!"  } else if !isLoading {  cell.timer?.invalidate()  cell.countLabel.text = "(countArray[indexPath.row])"  } else {  cell.startTimer()  cell.countLabel.text = "Loading."  }  if indexPath.row == 3 { cell.separatorView.isHidden = true }  return cell  }    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -gt; UIView? {  return tableView.dequeueReusableHeaderFooterView(withIdentifier: "header") as! LibraryHeaderTVView  }    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -gt; CGFloat {  return 30  } }   

Каковы изменения в UITableViewCell и UITableView в отношении iOS 15? Есть ли какая-либо статья, касающаяся этого, чтобы узнать больше об их конкретных изменениях?