gpt4 book ai didi

ios - 使用动态单元格高度时将表格 View 滚动到底部

转载 作者:可可西里 更新时间:2023-11-01 03:27:57 25 4
gpt4 key购买 nike

如何在使用动态单元格高度时将表格 View 滚动到底部?

出于某种原因,此代码在这种情况下不起作用:

[self.tableView scrollRectToVisible:CGRectMake(0, self.tableView.contentSize.height - self.tableView.bounds.size.height, self.tableView.bounds.size.width, self.tableView.bounds.size.height) animated:YES];

谢谢!

编辑:使用@Hasiya 的代码滚动到底部,对于你们中的一些人来说,仅此一项就可以做到这一点。

最佳答案

以下代码适用于我的 Swift 3.1 代码,使用 Xcode 8.3.2 仅针对 iPhone 的 iOS 10.1。

我遇到了和楼主一样的问题。我的应用程序包含消息传递功能。当消息 View 被插入堆栈时,我希望最后一篇文章可见。由于消息的内容,我的表格 View 单元格高度是可变的。没有一个解决方案令我满意(最后一个表格 View 行不可见或仅部分可见)。但是,这对我有用:

  • 在 Interface Builder (IB) 中,将单元格行高设置为大于我预期的平均行高值(在我的案例中为 50)(确保选中“自定义”复选框)。
  • 在“viewDidLoad”函数内实现 TableView 的 ViewController 中,按如下方式设置 TableView 的“rowHeight”属性:

    myTableView.rowHeight = UITableViewAutomaticDimension
  • 同样在“viewDidLoad”函数中,将 tableview 的“estimatedRowHeight”设置为高于您预期的平均行高的值。我的情况是 140。

最后也是最重要的是我写了这段代码:

extension UITableView {

func scrollToBottom() {
let rows = self.numberOfRows(inSection: 0)

let indexPath = IndexPath(row: rows - 1, section: 0)
self.scrollToRow(at: indexPath, at: .top, animated: true)
}
}

注意 at: .top — 这就是解决我的问题的原因。为 UITableViewScrollPosition 参数传递 .bottom 值只是不起作用。即使传递 .middle 也有效——但不是 .bottom

因此,每当我的数据集需要更新或收到新消息时,我都会调用

func getTableViewData(){
// Get your data here any way you usually do..

// call to reload
myTableView.reloadData()
// call the scroll function
myTableView.scrollToBottom()
}

我通过简单地将 at: .bottom 参数更改为 at: .top 来测试这个“方法”的结果。每次我将其更改为 at: .top 时,最后的表格行都完全可见并且表格一直滚动到底部。

关于ios - 使用动态单元格高度时将表格 View 滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38044691/

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