如何解决嵌套在 UITableViewCell 中的 UITableViewCell 的自动维度
因为我已经使用了 UITableView 的标题标题,所以我在另一个 tableView 中实现了一个 tableView,以便完全按照我的需要显示我的数据。我设置了固定的行高,但主单元格之间的间隙很大
这是我的数据样本:
var meals = Array(["1 - Starter": ["Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,when an unkNown printer took a galley of type and scrambled it to make a type specimen book.","Sushi","Thon"],"2 - Main": ["Steak","Frites","Pizza","Pâtes"],"3 - Desert": ["Cream","Coffee"]])
这里是主tableView的代码:
extension ViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
meals.count
}
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "MainTableViewCell",for: indexPath) as? MainTableViewCell else {
return UITableViewCell()
}
let dishes = meals[indexPath.section].value
cell.updateCellWith(dishes: dishes)
return cell
}
}
以及我在主 XIB 单元格中编写的 Detail TableView 的代码:
class MainTableViewCell: UITableViewCell {
@IBOutlet weak var detailTableVIew: UITableView!
var dishes: [String]?
override func awakeFromNib() {
super.awakeFromNib()
detailTableVIew.dataSource = self
detailTableVIew.register(UINib(nibName: "DetailTableViewCell",bundle: nil),forCellReuseIdentifier: "DetailTableViewCell")
detailTableVIew.tableFooterView = UIView()
detailTableVIew.estimatedRowHeight = 40
detailTableVIew.rowHeight = UITableView.automaticDimension
}
}
extension MainTableViewCell: UITableViewDataSource {
func updateCellWith(dishes: [String]) {
self.dishes = dishes
detailTableVIew.reloadData()
}
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return dishes?.count ?? 0
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "DetailTableViewCell",for: indexPath) as? DetailTableViewCell else {
return UITableViewCell()
}
cell.detailMealLabel.text = self.dishes?[indexPath.row] ?? ""
return cell
}
}
当我详细了解这些属性时,XIB 单元格以及主 tableVIew 以获得动态行高:
detailTableVIew.estimatedRowHeight = XXX
detailTableVIew.rowHeight = UITableView.automaticDimension
我还将 UILabel 的行数设置为零。
我收到了 XCode 的警告:
[警告] 仅警告一次:检测到约束的情况
模棱两可地建议表格视图单元格内容的高度为零
看法。我们正在考虑意外崩溃并使用标准
高度代替。单元格:
我的用户界面看起来像那样
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。