检测上UITabbarControler项目枪王滚动表查看了
问题描述:
我使用的TableView在标签栏 我的要求是,以滚动查看表了当对选择视图控制器检测上UITabbarControler项目枪王滚动表查看了
标签栏项目用户双击这是我的代码
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.如果用户敲击双任何时间标签标签栏项目的列表,应滚动到顶部
答
在你的代码,我想补充检查,如果这个视图控制器已经被选中
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
}
得益于其解决问题不精确地双击,但如果我点击标签栏项目,如果我已经在0索引 –