Bu çözümlerin hiçbiri benim için işe yaramadı. İşte Swift 4 ve Xcode 10.1 ile yaptığım şey ...
ViewDidLoad () öğesinde, tablo dinamik satır yüksekliğini bildirin ve hücrelerde doğru kısıtlamalar oluşturun ...
tableView.rowHeight = UITableView.automaticDimension
Ayrıca viewDidLoad () 'da, tüm tableView hücre uçlarınızı tableview'e aşağıdaki gibi kaydedin:
tableView.register(UINib(nibName: "YourTableViewCell", bundle: nil), forCellReuseIdentifier: "YourTableViewCell")
tableView.register(UINib(nibName: "YourSecondTableViewCell", bundle: nil), forCellReuseIdentifier: "YourSecondTableViewCell")
tableView.register(UINib(nibName: "YourThirdTableViewCell", bundle: nil), forCellReuseIdentifier: "YourThirdTableViewCell")
TableView heightForRowAt öğesinde, indexPath.row dosyasındaki her bir hücrenin yüksekliğine eşit olan dönüş yüksekliği ...
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0 {
let cell = Bundle.main.loadNibNamed("YourTableViewCell", owner: self, options: nil)?.first as! YourTableViewCell
return cell.layer.frame.height
} else if indexPath.row == 1 {
let cell = Bundle.main.loadNibNamed("YourSecondTableViewCell", owner: self, options: nil)?.first as! YourSecondTableViewCell
return cell.layer.frame.height
} else {
let cell = Bundle.main.loadNibNamed("YourThirdTableViewCell", owner: self, options: nil)?.first as! YourThirdTableViewCell
return cell.layer.frame.height
}
}
Şimdi, tablodaki her hücre için tahmini bir satır yüksekliği verin (TahminiHeightForRowAt). Mümkün olduğunca doğru olun ...
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0 {
return 400 // or whatever YourTableViewCell's height is
} else if indexPath.row == 1 {
return 231 // or whatever YourSecondTableViewCell's height is
} else {
return 216 // or whatever YourThirdTableViewCell's height is
}
}
İşe yarayacak ...
TableView.reloadData () öğesini çağırırken contentOffset'i kaydetmem ve ayarlamam gerekmiyordu
reloadRowsAtIndexPaths. Fakat (2) "gergin" ile ne demek istiyorsun ve (3) tahmini bir satır yüksekliği ayarladın? (Sadece tabloyu dinamik olarak güncellemenizi sağlayacak daha iyi bir çözüm olup olmadığını anlamaya