Intereting Posts
Как стереть круг в основной графике UITextView большой текст в UIAlertView Отсутствие необходимых модулей при работе динамической библиотеки в другом приложении Активизация перехода с переходом через segue несколько прерывистая iOS бета-пользователи и пользователи распространения на одном сервере с push-уведомлениями Можно ли заставить UIView начать отслеживание касаний ПОСЛЕ касания экрана? (например, меню) Единичное тестирование синглтона: макет и swizzle UIButton не будет показывать название Функция триггера в VC при отклонении модального вида iOS (ObjC) PromiseKit – обещание возврата в рамках обещания iOS 6 NSDictionary из файла JSON Повторное использование объектно-ориентированного кода в iOS и объектно-c Не удалось выполнить команду из-за сигнала: Ошибка сегментации: 11 swift 3 Почему мой UIRefreshControl перекрывает и блокирует содержимое UICollectionViewCell Задайте свойства контроллера дочернего вида

Ячейка пользовательского табличного представления с использованием xib-файла не может быть нажата / выбрана / использована

У меня есть таблица и настроенная ячейка, использующая swift. ниже полный код:

class LeftMenuViewController: UIViewController { let titles: [String] = ["Home", "Category", "Chat", "notification", "Flagger", "Feedback", "Setting", "Log Out"] override func viewDidLoad() { super.viewDidLoad() let leftmenuView : LeftMenu = LeftMenu() let nib = UINib(nibName: "LeftMenuCell", bundle : nil) leftmenuView.tableMenu.registerNib(nib, forCellReuseIdentifier: "cell") leftmenuView.tableMenu.dataSource = self leftmenuView.tableMenu.delegate = self leftmenuView.tableMenu.allowsSelection = true leftmenuView.tableMenu.backgroundColor = UIColor.blackColor() self.view.addSubview(leftmenuView) } } extension LeftMenuViewController : UITableViewDelegate, UITableViewDataSource { func tableView(tableMenu: UITableView, numberOfRowsInSection section: Int) -> Int { return titles.count } func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return 40 } func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) print("Clicked \(indexPath.row)") switch indexPath.row { case 0: sideMenuViewController?.contentViewController = UINavigationController(rootViewController: HomeViewController()) sideMenuViewController?.hideMenuViewController() break case 1: sideMenuViewController?.contentViewController = UINavigationController(rootViewController:CategoryViewController()) sideMenuViewController?.hideMenuViewController() break default: break } } func tableView(tableMenu: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell:LeftMenuCell = tableMenu.dequeueReusableCellWithIdentifier("cell") as! LeftMenuCell cell.backgroundColor = UIColor.blackColor() cell.menuName.text = titles[indexPath.row] cell.menuName.textColor = UIColor.whiteColor() return cell } } 

Но я смущен, моя камера не может быть нажата / нажата. Я думал, что ему нужна простая реализация didDeselectRowAtIndexPath ? Даже если я печатаю внутри этого метода, он не выписывает «Щелкнуть».

Так что не так в моем коде, может кто-нибудь мне помочь?

благодаря

didDeselectRowAtIndexPath на didSelectRowAtIndexPath .

  • Вызывается метод selectSelect, когда ячейка используется.
  • didDeselect вызывается в первой ячейке, когда выбрана другая ячейка.

Если didDeselectRowAtIndexPath все еще не получает вызов check, выбор будет одинарным, это не должно быть никакого выбора.

См. Снимок экрана.

введите описание изображения здесь

Все представления должны иметь ненулевой фрейм. Попробуйте добавить следующий код в LeftMenuViewController :

 override func viewDidLayoutSubviews { super.viewDidLayoutSubviews() leftmenuView.frame = self.view.bounds } 

Также он может быть одинаковым для tableView внутри LeftMenu но с использованием метода layoutSubviews .