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