gpt4 book ai didi

swift - 如何使用 UITableViewAutomaticDimension?

转载 作者:行者123 更新时间:2023-11-28 14:50:28 25 4
gpt4 key购买 nike

我有一个显示所有用户更新的 feedVC。我正在从 firebase 检索数据,并希望根据帖子长度自动设置高度。问题是,即使从 heightForRowAt 返回 UITableViewAutomaticDimension 后,单元格也不会在 VC 首次启动时自动调整大小。如果我导航到其他 vc 并返回到 feedVc,它工作正常。附上图片

VC首次启动时

从标签栏切换到另一个 VC 并再次点击提要后,它给出了预期的结果。

class FeedViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{


@IBOutlet weak var tableviewFeed: UITableView!
var listPost = [Posts]()

func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return listPost.count
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableviewFeed.dequeueReusableCell(withIdentifier: "feedCell") as! FeedCell
cell.lblUser.sizeToFit()
cell.lblPost.sizeToFit()
cell.lblUser.text = listPost[indexPath.row].user
cell.lblPost.text = listPost[indexPath.row].post
return cell
}

override func viewDidLoad() {
super.viewDidLoad()
tableviewFeed.estimatedRowHeight = 100
}

override func viewWillAppear(_ animated: Bool) {
FirebaseService.instance.retrievePost { (post) in
self.listPost = post.reversed()
self.tableviewFeed.reloadData()
}

}
}

最佳答案

你需要打电话

cell.lblUser.layoutIfNeeded()

之后

cell.lblUser.sizeToFit()

关于swift - 如何使用 UITableViewAutomaticDimension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49913523/

25 4 0
文章推荐: css - IE6: only correct size with " "?
文章推荐: javascript - Angular 滤镜不起作用
文章推荐: javascript - Angular 中 *ngFor 的减量索引
文章推荐: html - 为没有空标签的链接添加大背景图片
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com