我在 Tab Bar 下使用 TableView 我的要求是当用户双击所选 View Controller 的选项卡栏项目时向上滚动 TableView
这是我的代码
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
if tabBarController.viewControllers!.index(of: viewController) == 0 {
if let navigationController = viewController as? UINavigationController{
if let streamController = navigationController.viewControllers.last as? StreamViewController
{
streamController.tableViewStream.setContentOffset(CGPoint(x: 0, y: 0), animated: false)
}
}
return true
}
}
但这会导致当用户单击项目时向上滚动表格,因此我注意到能够保留滚动位置。
所以我想要的是
1.如果用户滚动表格并转到另一个选项卡并通过单击再次返回,滚动位置应保持不变
2.如果用户在标签栏项目上的任何时候点击两次,列表应该滚动到顶部
最佳答案
在您的代码中,我将添加检查是否已选择此 View Controller
if tabBarController.viewControllers!.index(of: viewController) == 0 {
if self.selectedIndex != 0 { return true }
if let navigationController = viewController as? UINavigationController{
if let streamController = navigationController.viewControllers.last as? StreamViewController
{
streamController.tableViewStream.setContentOffset(CGPoint(x: 0, y: 0), animated: false)
}
}
return true
}
关于ios - 检测双击 UITabbarController 项目以向上滚动表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44173761/