私はテーブルビューとカスタムセルをswiftを使用しています。以下の完全なコードです:xibファイルを使用したカスタムテーブルビューのセルは、クリック/選択/タップできません。
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実装?私がそのメソッドの中に印刷しても、 "Clicked"は書き出されません。
私のコードで何が間違っている、誰でも私を助けることができますか?
おかげdidSelectRowAtIndexPath
へ
'leftmenuView'に' frame'またはレイアウト制約を追加しましたか?ビューは、 'frame'がゼロのときに見えるかもしれませんが、相互作用はありません。 –
どうか私を説明できますか?私はこの1つ後にあなたの答えを試しました(didDelectlectRowAtIndexPathをdidSelectRowAtIndexPathに変更してください)、私のタイプミスについては同意しましたが、まだ動作しません。あなたの提案のキャプチャや詳細を添付できますか?多くのおかげで – Alfarabi
'オーバーライドFUNCのviewDidLayoutSubviews追加するようにしてください{ super.viewDidLayoutSubviewsを() leftmenuView.frame = self.view.bounds }' –