I have added gesture recognisers to subviews on my tableview custom cell .
Enabled isUserInteractionEnabled for UIElements
let imageView: UIImageView = {
let imageView = UIImageView()
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.isUserInteractionEnabled = true
return imageView
}()
let firstLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.isUserInteractionEnabled = true
return label
}()
let someStackView: UIStackView = {
let stackView = UIStackView()
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .leading
return stackView
}()
let secondButton: UIButton = {
let button = UIButton(type: .custom)
button.isUserInteractionEnabled = true
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
func setupcustomcellView() {
addSubview(imageView)
addSubview(someStackView)
someStackView.addArrangedSubviews([
firstLabel,
secondButton
]) }
I have added gestures using below function :
private func setupUserInteraction() {
let iMageTapRecognizer = UITapGestureRecognizer(target: self,
action: #selector(didTappediMage))
imageView.addGestureRecognizer(iMageTapRecognizer)
secondButton.addTarget(self,
action: #selector(didTappedtButton),
for: .touchUpInside)
let firstLabelTapRecognizer = UITapGestureRecognizer(target: self,
action: #selector(didTappedfirstLabel))
firstLabel.addGestureRecognizer(firstLabelTapRecognizer)
}
These gestures are recognised only when I disable user interaction for custom cell content view.
contentView.isUserInteractionEnabled = false
But I want to add gesture to my content view itself. When user clicks on cell I need to perform certain action. But when I make contentView.isUserInteractionEnabled = true, My subviews gesturerecognizers are not recognised. Please guide me why is gesture of UI elements are not recognised when custom cell user interaction is set to true.
Content view is blocking in between . I made below changes and it worked