如何在UITabBarItem上检测到双击?

时间:2016-05-31 19:02:21

标签: ios xcode swift uigesturerecognizer uitabbaritem

我尝试过添加一个手势识别器,没有意识到UITabBarItem是不可能的,这就是我所做的: enter image description here

还有其他建议吗?

3 个答案:

答案 0 :(得分:2)

我不认为这会有一个简单的解决方案,因为双击标签栏项目不是预期的行为。即使你让它工作,我也会认为Apple不会通过审核,因为它可能会违反他们的设计准则。

答案 1 :(得分:0)

每当您尝试将手势识别器添加到不从UIView继承的对象时,您都会看到该错误。尝试将手势识别器添加到UITabBar,然后使用双击发生的点,将其与正确的标签栏项匹配。

答案 2 :(得分:0)

一个简单的解决方案就是这样。

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {

    let name = viewController.tabBarItem.title ?? ""
    if(name == "Home"){

        if(name == self.selectedTabName){
            print("tapped home again")
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "scrollToTop"), object: nil)
        }
    }
    self.selectedTabName = name
    self.delay(0.5){

        self.selectedTabName = ""
    }

}
 func delay(_ delay:Double, closure:@escaping ()->()) {

    let when = DispatchTime.now() + delay
    DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
}