轻按第二次滚动到顶部

时间:2018-11-22 09:38:39

标签: ios swift uitabbarcontroller

当我第二次点击第一个BarButtonItem(主页)时,需要滚动到顶部。有很多答案,但是没有一个对我不起作用。真是不可思议,但是确实如此。 我班上有UITabBarControllerDelegateself.tabBarController?.delegate = self中有viewDidLoad(),而我的TableViewController中有这个:

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
        if self.tabBarController?.selectedIndex == 0 {
            self.tableView.setContentOffset(CGPoint(x: 0, y: -60), animated: true)
        }
    }

每次我点击“首页”(索引= 0)都可以使用,但是当我已经在“首页”屏幕上时需要执行此操作(所有社交媒体的标准功能都可以通过点击{{1 }})。如果上面有Home,如何设置Y坐标? 谢谢

1 个答案:

答案 0 :(得分:1)

所有您需要做的就是检查是否选定的viewController是您的具有tableView的视图控制器,您需要滚动到顶部。现在,我建议使用滚动到而不是设置内容偏移,因为这可能会因设备和其他逻辑(例如大标题)而异

考虑到您拥有自定义标签栏控制器,该控制器具有所有标签引用,您可以执行以下操作:

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
        if viewController == myViewController {
            myViewController.tableView.scrollToRow(
                           at: IndexPath(row: 0, section: 0),
                           at: .top,
                           animated: true)
          }
        }
    }