gpt4 book ai didi

ios - 通过内容动态设置 UIScrollView 和 UITableView 高度

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

我是 iOS 开发的新手,我已经坚持了几天

我在 UIScrollView 中有一个 UITableView 和一个 UIImageViewUIImageView 在表格的顶部并且高度是静​​态的,所以我对此没有任何问题,问题是 UITableView,我需要根据内容动态获取高度并将该高度设置为表格的高度约束以及 ScrollView 的内容大小。

单元格是自动调整大小的,因此单元格的高度根据内容而变化。到目前为止,我能做的最好的事情是使用 UITableViewcontentSize.height 属性获取高度,但显然这会返回基于 estimatedRowHeight 的高度我设置的不是每行的实际高度。

代码:

override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.estimatedRowHeight = rowHeight
tableView.rowHeight = UITableViewAutomaticDimension
tableView.layoutIfNeeded()
tableHeight.constant = tableView.contentSize.height
scrollView.contentSize.height = imageView.bounds.height + tableView.contentSize.height
}

我尝试过的:

  • 使用 UITableViewcontentSize.height 属性获取高度,如代码所示和之前解释的。
  • willDisplayCell 上单独获取每一行的高度,并将其添加到表格的高度约束和 ScrollView 的 contentSize 中。但看起来这增加了比实际更多的行,在表格末尾给我一堆空单元格。 willDisplayCell 中的代码:

    let cellHeight = cell.bounds.height
    tableHeight.constant += cellHeight
    scrollView.contentSize.height += cellHeight
  • 和以前一样,只是我在 cellForRowAtIndexPath 中尝试了相同的结果。

最佳答案

Apple documentation不鼓励将 UITableView 嵌入到 UIScrollView 中:

You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled.

要解决您的问题,您可以将 UIImageView 放在标题 View 中,或更改第一行的单元格以显示图像。然后,您将使用 UITableViewDelegate 调整单元格高度,特别是 tableView:heightForRowAtIndexPath:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// adjust the return based on the indexPath
return 30;
}

关于ios - 通过内容动态设置 UIScrollView 和 UITableView 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com