Как различать didSelectRowAt UITableViewCell и действие UITouch - PullRequest
0 голосов
/ 11 июля 2020

У меня есть стек (для звездных рейтингов) в ячейке табличного представления, которые меняются в зависимости от UITouch, и это работает нормально. Но нажатие где-нибудь еще в ячейке должно перейти к следующему контроллеру представления, а этого не происходит.

Вот мои переопределения касания:

class JointViewCell: UITableViewCell {

fileprivate let starStack : UIStackView = {
        let stackView = UIStackView()
        stackView.axis = .horizontal
        stackView.alignment = .fill
        stackView.distribution = .fillEqually
        stackView.spacing = 4
        stackView.tag = 5007
        return stackView
    }()

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch: UITouch? = touches.first
    if touch?.view == starStack {
        handleTouch(with: touches)
    }
}

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch: UITouch? = touches.first
    if touch?.view == starStack {
        handleTouch(with: touches)
    }
}

func handleTouch(with touches : Set<UITouch>) {
// handling touch actions
}
}

А вот переопределение didSelectRowAt, которое не отвечает после выполнения вышеуказанных сенсорных действий в ячейке:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        let menuCard = MenuCardTable()
        
        menuCard.modalPresentationStyle = .pageSheet
        self.present(menuCard, animated: true, completion: nil)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...