ios - 检测双击 UITabbarController 项目以向上滚动表格 View

标签 ios swift uitabbarcontroller

我在 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/

相关文章:

uiview - IOS 7 隐藏标签栏问题

swift - 带有导航 Controller 的 UITabBarController 在触摸时弹出 subview Controller

ios - 我遇到 JSON 问题 - 数据重复

ios - 创建 View Controller Storyboard与以编程方式创建 View Controller Storyboard - 性能

swift - 如何以编程方式将没有宽度的自定义按钮居中

swift - for循环不打印数组的输出

ios - 以编程方式更改 UITabBarController 选项卡栏属性的类

iphone - 在应用程序中传送预填充的 SQLite 数据库。启动时数据库的路径

ios - 自定义 UIbutton 默认颜色 Xcode Swift

ios - 当我按下按钮时如何只做一件事?