点击标签栏时将表格视图滚动到顶部

Posted

技术标签:

【中文标题】点击标签栏时将表格视图滚动到顶部【英文标题】:Scroll tableview to the top when tapping tab bar 【发布时间】:2017-04-13 21:07:02 【问题描述】:

选择标签栏项目时,我需要一直向上滚动表格视图。 我试过了,但它不起作用。

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) 
    let tabBarIndex = tabBarController.selectedIndex
    if tabBarIndex == 0 

        let indexPath = NSIndexPath(row: 0, section: 0)
        MyViewController().tableView.scrollToRow(at: indexPath as IndexPath, at: .top, animated: true)
    

方法被调用,但是tableView没有滚动到顶部。

【问题讨论】:

【参考方案1】:

问题是您正在创建一个新的MyViewController 实例,而不是访问屏幕上的实例。你会想要访问已经创建的 viewController,幸运的是这个委托方法把它交给了你。

改变这一行

MyViewController().tableView.scrollToRow(at: indexPath as IndexPath, at: .top, animated: true)

let myViewController = viewController as? MyViewController
myViewController.tableView.scrollToRow(at: indexPath as IndexPath, at: .top, animated: true)

【讨论】:

【参考方案2】:
self.tableviewObject.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true)

【讨论】:

以上是关于点击标签栏时将表格视图滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章

再次点击当前标签栏时如何在 UITableView 中滚动到顶部?

单击表格单元格时将 UIViewController 滚动到顶部

通过点击状态栏滚动到顶部 TableView 不起作用(有许多子视图)SWIFT

点击状态栏不会将表格视图滚动到顶部

如何在 iOS 11 中像点击状态栏一样调用缓慢滚动到顶部的动画?

将“标签状态栏滚动到顶部”添加到 UIScrollView 中包含的 UITableView