首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode11.3测试版如何在UITableview中导航到顶部

Xcode11.3测试版如何在UITableview中导航到顶部
EN

Stack Overflow用户
提问于 2019-12-11 19:40:24
回答 3查看 106关注 0票数 0

切换选项卡时,我需要导航到tableview的顶部。

代码语言:javascript
复制
func scrollToFirstRow() {
      if let rowCount = self.dataSource?.tableView(self,numberOfRowsInSection: 0), rowCount > 0 {
          let indexPath = IndexPath(row: 0, section: 0)
          self.scrollToRow(at: indexPath, at: .top, animated: true)
          self.setContentOffset(CGPoint(x: 0, y: 10), animated: true)
      }
  }

使用Xcode10.1和iOS11,我可以导航到顶部,同时使用上面的代码切换标签。

但在iOS 13和Xcode11.3测试版中,tableview无法滚动到顶部

EN

回答 3

Stack Overflow用户

发布于 2019-12-11 19:52:59

将indexPath值指定为行0和部分0。这在我的iOS 13中运行得很好。

代码语言:javascript
复制
    self.chatTable.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: true)

更新

你需要在tableview加载完成后调用它。下面是如何检查加载结束的方法:

代码语言:javascript
复制
  func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if let lastVisibleIndexPath = tableView.indexPathsForVisibleRows?.last {
            if indexPath == lastVisibleIndexPath {
                // call your scrollToFirstRow function here 
            }
        }
    }

同样在您的viewWillAppear中,只需调用tableView.reloadData()

票数 0
EN

Stack Overflow用户

发布于 2019-12-11 21:17:06

只需调用此方法:

self.chatTable.setContentOffset(CGPointZero, animated:true)

self.chatTable.setContentOffset(.zero, animated:true)

票数 0
EN

Stack Overflow用户

发布于 2019-12-12 19:23:12

通过在DispatchQueue上调用scrollToFirstRow()解决

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59285006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档