didSelectRowAtIndexPath长按后调用

我有一个uitableview正下方的uitextfield填充类似的string在一个uitableview cell 。 项目被填充。 然而didSelectRowAtIndexPath在长按之后被调用

我的UITableView (embedded在UIScrollView) - didSelectRowAtIndexPath:只在长按自定义单元格后被调用

我的视图层次:

  • UIScrollView(outerscroll)
    • 其他一些视图和button
    • UITexfield
    • UITableView(tableView)

我的代码

 class MyViewController: BaseViewController , UITextFieldDelegate , UITableViewDelegate , UITableViewDataSource , UIGestureRecognizerDelegate { @IBOutlet weak var autocompleteTableView: UITableView! var pastUrls = ["Men", "Women", "Cats", "Dogs", "Children","aaaaaaaaa","aaaaaaaaaaaaaaaaaaa","aaaaaaaaa","a","aa","aaa"] var autocompleteUrls = [String]() @IBOutlet weak var image_view_seacrh_ifsc: UIImageView! @IBOutlet weak var scrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.scrollView.panGestureRecognizer.delaysTouchesBegan = true autocompleteTableView.delegate = self autocompleteTableView.dataSource = self autocompleteTableView.scrollEnabled = true autocompleteTableView.alwaysBounceVertical = false autocompleteTableView.allowsSelection = true autocompleteTableView.allowsSelectionDuringEditing = true autocompleteTableView.hidden = true super.hideKeyboard() super.showNavigationBarBackButton() let gesture_search_ifsc = UITapGestureRecognizer(target: self, action: "action_Search_Ifsc:") gesture_search_ifsc.delegate = self gesture_search_ifsc.numberOfTapsRequired = 1 image_view_seacrh_ifsc.userInteractionEnabled = true image_view_seacrh_ifsc.addGestureRecognizer(gesture_search_ifsc) } func searchAutocompleteEntriesWithSubstring(substring: String) { autocompleteUrls.removeAll(keepCapacity: false) for curString in pastUrls { var myString:NSString! = curString as NSString var substringRange :NSRange! = myString.rangeOfString(substring) if (substringRange.location == 0) { autocompleteUrls.append(curString) } } autocompleteTableView.reloadData() //autocompleteTableView.hidden = false } func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return autocompleteUrls.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell: AutoBankCell = tableView.dequeueReusableCellWithIdentifier("AutoBankCell") as! AutoBankCell cell.label.text = self.autocompleteUrls[indexPath.row] //cell.lbl.text = self.autocompleteUrls[indexPath.row] return cell } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let selectedCell : UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! self.bank_name.text = self.autocompleteUrls[indexPath.row] self.autocompleteTableView.scrollEnabled = true self.autocompleteTableView.hidden = true } } 

我的UItableView被embeddedUIScrollView并且正常工作。

尝试在你的scroll view添加uiview ,并添加该scroll view每个元素,如你的tableView,textfield,views and buttons uiview tableView,textfield,views and buttons等。

所以,这个视图就像容器视图一样。

如果您使用autolayout ,请确保您正在设置适当的限制。

第二件事是不需要的, implicitly移除不必要的手势识别器。

Tableview默认有滚动使能,所以不需要再次设置为真。 (这不会影响你的问题btw !!)

所以删除不必要的configuration,并进行适当的设置,你的问题将得到解决我认为。