Swift 根据子TableViewController的高度更改父UITableView单元格的高度
这些图像是从网络下载的,每个图像都有自己的高度。因此,当加载图像时,如何在WidgetVC中更改行的高度 WidgetsVC可以包含多个ListVCSwift 根据子TableViewController的高度更改父UITableView单元格的高度,swift,uitableview,uiviewcontroller,Swift,Uitableview,Uiviewcontroller,这些图像是从网络下载的,每个图像都有自己的高度。因此,当加载图像时,如何在WidgetVC中更改行的高度 WidgetsVC可以包含多个ListVC 提前感谢。由于您将UIViewController嵌入到UITableViewCell中,因此无法依靠自动布局根据加载的图像自动更改高度 因此,我建议您将图像加载逻辑移动到WidgetsVC,并在每次加载图像时执行以下操作 计算加载图像的高度/宽度纵横比(如果图像加载库具有完成处理程序,则可以将其用于计算目的) 计算图像的拟合高度(这仍然在Widg
提前感谢。由于您将
UIViewController
嵌入到UITableViewCell
中,因此无法依靠自动布局根据加载的图像自动更改高度
因此,我建议您将图像加载逻辑移动到WidgetsVC
,并在每次加载图像时执行以下操作
WidgetVC
中的图像加载程序的完成处理程序中)让imageHeight=aspectRatio*self.tableView.frame.width
tableView.reloadData()
tableView(tableView:UITableView,heightForRowAt indexPath:indexPath)
方法中,传入存储在数据结构中的高度tableView(tableView:UITableView,cellForRowAt indexath:indexPath)
方法中,传入存储在数据结构中的图像struct WidgetListImageModel{
变量高度:CGFloat
var-image:UIImage
}
var widgetImageModels:[Int:WidgetListImageModel]=[:]
请注意,widgetmagemodels
是一个字典
,原因如下
WidgetVC
的cellForRowAt
方法中传递的数据模型,因此您可以独立存储所需的信息,而不是对其进行修改indexPath.row
作为heightForRowAt
和cellForRowAt
方法的索引,您可以轻松地查询widgetmagemodels
以获取所需的信息WidgetListImageModel
加载数据的单元格的索引WidgetsVC(has a table view and uses tableview automatic dimension)
->ListVC(uses tableview automatic dimension and embedded as a row inside WidgetVC)
->TableViewCell-Image(embedded inside ListVC)