ios - didSelectRowAtIndexPath लंबे प्रेस के बाद कहा जाता है



uitableview uiscrollview (1)

अपने scroll view में uiview को जोड़ने का प्रयास scroll view और उस uiview में आपके tableView,textfield,views and buttons आदि जैसे प्रत्येक तत्व जोड़ें।

इसलिए, यह दृश्य कंटेनर व्यू के रूप में काम करता है

सुनिश्चित करें कि आप उचित बाधाओं को स्थापित कर रहे हैं यदि आप autolayout का उपयोग कर रहे हैं

दूसरी चीज अनावश्यक इशारे पहचानकर्ता को implicitly करती है जो आवश्यक नहीं है।

टेबलव्यूव स्क्रॉल डिफ़ॉल्ट रूप से सक्षम है इसलिए इसे फिर से सत्य सेट करने की आवश्यकता नहीं है (यह आपकी समस्या बीटीड को प्रभावित नहीं करता !!)

अनावश्यक कॉन्फ़िगरेशन को निकालें और उचित सेटअप करें और आपकी समस्या हल हो जाएगी मुझे लगता है

मेरे पास uitextfield ठीक नीचे एक uitextfield जो एक uitextfield uitableview cell में समान स्ट्रिंग्स को पॉप्युलेट uitableview cell । आइटम आबादी हो जाते हैं हालांकि, didSelectRowAtIndexPath को लंबे प्रेस के बाद कहा जाता है

मेरा UITableView (UIScrollView में एम्बेडेड है) - didSelectRowAtIndexPath: केवल कस्टम सेल पर लंबे प्रेस के बाद बुलाया जा रहा है

मेरा दृश्य पदानुक्रम:

  • UIScrollView (आउटर्सकोल)
    • कुछ अन्य विचार और बटन
    • UITexfield
    • UITableView (तालिकादृश्य)

मेरा कोड

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 आबादी हो जाता है और ठीक से काम करता है जब UIScrollView में एम्बेड नहीं किया गया





didselectrowatindexpath