【问题标题】:Detect Double Tap on UITabbarControler Item to scroll table view up检测 UITabbarControler 项目上的双击以向上滚动表格视图
【发布时间】:2017-10-25 16:56:29
【问题描述】:

我在 Tab Bar 下使用 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.如果用户在标签栏项目上双击任何时候,列表应该滚动到顶部

【问题讨论】:

    标签: ios swift uitabbarcontroller


    【解决方案1】:

    在您的代码中,我将添加检查是否已选择此视图控制器

    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 索引上点击标签栏项目
    • 我试过了,当用户移动到另一个选项卡并再次返回到 0 选项卡时,它会再次滚动。
    猜你喜欢
    • 1970-01-01
    • 2013-08-14
    • 2023-03-06
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    相关资源
    最近更新 更多