didSelectRowAt没有调用indexPath

时间:2017-06-15 08:37:42

标签: ios iphone swift uitableview swift3

我创建了一个包含两个View(Top,Bottom)的UIViewController, 单击searchBar时,Bottom视图会一直扩展到顶部。 (bottomView高度扩大,topView高度变小)。

func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
    self.expandBottomView()
    return true
}

func expandBottomView() {
    let heightToAdd = TopView.frame.height - numOfRequestsTitle.frame.height

    RecomandFriendHeight.constant += heightToAdd
    UIView.animate(withDuration: 0.5) {
        self.view.layoutIfNeeded()
    }

    topTableView.isUserInteractionEnabled = false
}

两个View都包含TableViews(topTableView,BottomTableView),我检查了所有委托。 BottomView包含另一个按钮,可在需要时折叠bottomView。

topTableViewCell包含两个按钮和两个标签。 bottomTableViewCell包含一个标签和一个imageView。

问题是tableViews单元格没有调用didSelectRowAt。 enter image description here

2 个答案:

答案 0 :(得分:0)

If you add button to a cell didSelectAt not called on tapping the button. In this case you have to add a selector to this button inside cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! customcell
        cell.btn.addTarget(self, action: #selector(clickedCell), for: .touchUpInside)
        return cell

  }

and implement this selector method

func clickedCell(_ sender : UIButton) {
        print("clicked")
 }

答案 1 :(得分:0)

Make
topTableView.isUserInteractionEnabled = true