Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法在点击时选择UITableView行,但可以在长时间点击时选择_Ios_Swift_Uitableview_Uikit - Fatal编程技术网

Ios 无法在点击时选择UITableView行,但可以在长时间点击时选择

Ios 无法在点击时选择UITableView行,但可以在长时间点击时选择,ios,swift,uitableview,uikit,Ios,Swift,Uitableview,Uikit,我的iOS应用程序具有以下流程: UITabView->带UITableView的选项卡视图->选择一行->UITabView(作为全屏模式)->带UIVIEW控制器和UITableView的UITabView self.catalogItemsTableView.allowsSelection = true self.catalogItemsTableView.selectionFollowsFocus = true self.catalogItemsTableView.allowsSelec

我的iOS应用程序具有以下流程:

UITabView->带UITableView的选项卡视图->选择一行->UITabView(作为全屏模式)->带UIVIEW控制器和UITableView的UITabView

self.catalogItemsTableView.allowsSelection = true
self.catalogItemsTableView.selectionFollowsFocus = true
self.catalogItemsTableView.allowsSelectionDuringEditing = true
UIViewController中的UITableView行不允许我一次点击就选择它们。我可以选择它们,如果我A)用两个手指轻触或B)长按(3D强制触摸?)。然后该行触发
didSelectRowAt
。否则什么也不会发生

我已尝试在UITableView上设置这些

self.catalogItemsTableView.allowsSelection = true
self.catalogItemsTableView.selectionFollowsFocus = true
self.catalogItemsTableView.allowsSelectionDuringEditing = true
但他们没有改变任何事情。下面是视图的外观。是否因为UITableView位于全屏模式内?我正在加载带有以下代码的“模态”视图:

let orderEntryViewController = OrderEntryViewController(order: order, parentVC: self.parentVC!)
orderEntryViewController.order = order
orderEntryViewController.modalPresentationStyle = .fullScreen
                
self.parentVC!.present(orderEntryViewController, animated: true, completion: nil)

我在使用表视图点击的视图中有这个。我把它放在适当的位置,以关闭键盘

let tap = UITapGestureRecognizer(target: self, action: #selector(UIInputViewController.dismissKeyboard))

view.addGestureRecognizer(tap)

删除此选项后,UITableView轻触再次正常工作。

您还可以实施手势识别器委托,然后检查触摸是否在桌面视图上

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    
    if touch.view?.isDescendantOfView(self.catalogItemsTableView) == true {
        return false
    }
    return true
}

“是因为UITableView在全屏模式中吗?”不是。更有可能是你对吃水龙头的单元格或桌子做了什么。@matt我向你致敬。我有一个轻敲的手势,表示我不使用键盘,而它正在消耗桌面视图轻敲。没问题!我也做过同样的事。