使用swift3,我想允许用户创建图片或简单文本帖子的帖子。我有一切正常工作,除了当我创建一个文本的帖子时,单元格中的UIImageView填充TableViewCell中的空间。理想情况下,如果用户创建一个仅包含文本的帖子,TableViewCell将只包含标题标签的所有内容,而不包括UIImageView(参见图像)。我怎么能这样做呢。
研究: https://www.youtube.com/watch?v=zAWO9rldyUE, https://www.youtube.com/watch?v=TEMUOaamcDA,https://www.raywenderlich.com/129059/self-sizing-table-view-cells
当前代码
{{1}}
答案 0 :(得分:1)
我看到您正在使用故事板创建UI,在这种情况下,您可以为UIImageView
添加高度约束(确保将其连接到您的单元格以便在代码中使用它)和在需要时更改tableview的约束和高度。
class MyCell: UITableViewCell {
@IBOutlet var postImage: UIImageView!
@IBOutlet var postImageHeight: NSLayoutConstraint!
}
class ViewController: UITableViewController {
var dataSource: [Model] = []
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
//Cell without image
if dataSource[indexPath.row].image == nil {
return 200
}
//Cell with image
return 350
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
//Adjust the height constraint of the imageview within your cell
if dataSource[indexPath.row].image == nil {
cell.postImageHeight.constant == 0
}else{
cell.postImageHeight.constant == 150
}
return cell
}
}