答案 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)
}