2016-07-28 32 views
1

Ich habe eine benutzerdefinierte UIView-Unterklasse, an die ein UITapGestureRecognizer angehängt ist. Ich versuche, diese benutzerdefinierte Ansicht innerhalb eines UIView (Container) innerhalb eines UIScrollView innerhalb einer UITableViewCell zu verwenden.iOS - UITapGestureRecognizer wurde nicht von UIView innerhalb von UIScrollView innerhalb von UITableViewCell ausgelöst

So:

UITableViewCell

• UIScrollView

•• UIView (Behälter für die richtige Content auf UIScrollView)

••• Bündel UIViews mit UITapGestureRecognizer (Unterklasse)

Es scheint, dass, wenn ich nicht eine 'Container' Ansicht innerhalb der UIScrollView verwenden, die Taps nur fin erkannt werden e. Aber dann ist die contentSize nicht korrekt und einige meiner benutzerdefinierten Ansichten innerhalb der UIScrollView sind Off-Screen und kann nicht zugegriffen werden.

Wenn ich in UIScrollView eine Containeransicht verwende, ist die contentSize für die Bildlaufansicht korrekt, aber keine der benutzerdefinierten Ansichtsabgriffe wird erkannt.

Ich habe alle möglichen Variationen des unten ohne Erfolg versucht:

tapGesture.cancelsTouchesInView = false 
scrollView.canCancelContentTouches = false 
scrollView.userInteractionEnabled = true 
containerView.userInteractionEnabled = true 

Antwort

0

Nun ich es nicht aus irgendeinem Grund arbeiten konnte, versuchte sogar UIScrollView und die UIView für den Container Ansicht Subklassen.

Ich fügte am Ende nur eine UICollectionView zu der Unterklasse UITableViewCell hinzu und setzte dann den UITableViewController als UICollectionViewDataSource und UICollectionViewDelegate, um die Elementauswahl zu behandeln.