当我第二次点击第一个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/