2016-06-22 4 views
0

Я пытаюсь выбрать контент на select Cell Из таблицы, здесь я использую метод didselectrowatindexpath, но он получает вызов после долгого нажатия ячейки.didselectrowatindexpath, вызванный после длинного нажатия в swift

Это может быть дубликатом вопрос, но я стараюсь много в решении, но моя проблема не получил исправить Вот код, который я использую

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return autocompleteUrls.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCellWithIdentifier("AutoCompleteRowIdentifier", forIndexPath: indexPath) as! DrawerTableViewCell 
    let index = indexPath.row as Int 

    cell.autoCompleteLabel!.text = autocompleteUrls[index].email! 
    return cell 
} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
    print("You selected cell #\(indexPath.row)!") 

    print("didSelectRowAtIndexPath") 
    let selectedCell = autocompleteTableView.cellForRowAtIndexPath(indexPath)! as! DrawerTableViewCell 
    print("Selected Table Text =\(selectedCell.autoCompleteLabel!.text)") 
    textEmail.text = selectedCell.autoCompleteLabel!.text 
    autocompleteTableView.hidden = true 

} 

И мой viewDidLoad как

override func viewDidLoad() { 
    pastUrls = defaults.objectForKey("autoCompleteEmail") as? [String] ?? [String]() 
    spinnerInitialization() 
    super.viewDidLoad() 
    self.hideKeyboardWhenTappedAround() 
    autocompleteTableView.tableFooterView = UIView() 
    autocompleteTableView.hidden = true 
    autocompleteTableView.delegate = self 
    autocompleteTableView.dataSource = self 
    textEmail.delegate = self 
} 

Обновлено: - Код СкрытьКейбордWhenTappedAround

extension UIViewController { 
func hideKeyboardWhenTappedAround() { 
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
    view.addGestureRecognizer(tap) 
} 

func dismissKeyboard() { 
    view.endEditing(true) 
}} 

Пожалуйста, помогите мне здесь, я буду очень благодарен вам за то, что вы получили

+1

Вы добавляете TapGesture на свой просмотр? Если да, удалите жест выделения или прокомментируйте его. Иногда указывается жест нажатия и didselectrowatindexpath. спасибо –

+0

Нет, я не добавляю TapGesture в My View –

+0

вы можете показать код этого метода self.hideKeyboardWhenTappedAround() –

ответ

2

Благодаря Dev.RK Здесь я использовал код, чтобы скрыть ключевую доску, где я использовал метод view.addGestureRecognizer(tap) в hideKeyboardWhenTappedAround() @ Dev.Rk Предложите мне добавить строку перед view.addGestureRecognizer(tap) линия tap.cancelsTouchesInView=false и решить мой сумасшедшая проблема

0

Включить функцию UserInteraction для метки, находящейся внутри ячейки.

И Убедитесь, что в ячейке включен идентификатор UserInteraction.

Я надеюсь, что эта информация вам поможет.

+0

Это уже разрешено –

0

Вам необходимо объяснить свою структуру. Я предполагаю, что вы используете tableView внутри UIViewController. Но почему у вас есть следующая строка внутри метода didSelect?

let selectedCell = autocompleteTableView.cellForRowAtIndexPath(indexPath)! as! DrawerTableViewCell 

вместо

let selectedCell = tableView.cellForRowAtIndexPath(indexPath)! as! DrawerTableViewCell 

Я понимаю, что у вас есть имя представления таблицы, указанное в autocompleteTableView, но разве ссылка этой точки зрения табличного приходит к вам от самого метода didSelectRow?

+0

Да, я попытался с этим, но это не ответ, если он будет ответом, тогда обе строки должны быть напечатаны, это 'print (« Вы выбрали ячейку # \ (indexPath.row)!")' и other is 'print (" didSelectRowAtIndexPath ")' –

+0

Не могли бы вы рассказать, как выглядит ваша структура? У вас есть scrollviews? –

+0

Нет У меня нет просмотра скроллера У меня есть фоновое изображение –

Смежные вопросы