当我第二次点击第一个BarButtonItem(主页)时,我需要滚动到顶部。有很多答案,但没有一个不适合我。难以置信,但确实如此。
我在我的课上有UITabBarControllerDelegate,在self.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)
        }
    }

每次我点击主页(index=0)它都能工作,但当我已经在主屏幕上时,我需要这样做(所有社交媒体都可以通过点击Home滚动到顶部提要的standart功能)。如果上面有aNavigationBar怎么设置Y坐标?
谢谢

最佳答案

您所要做的就是检查所选的view controller是否是您的视图控制器,其中包含需要滚动到顶部的tableView。现在我建议使用scroll to而不是设置内容偏移量,因为这可能会根据设备和其他逻辑(例如大标题)而有所不同
考虑到您的自定义选项卡栏控制器具有所有选项卡引用,您可以执行以下操作:

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

关于ios - 轻按第二次滚动到顶部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53427857/

10-10 21:07