2016-03-20 6 views
1

Ich habe eine UITableView in meiner Ansicht Controller, und in der Zelle gibt es eine horizontale UIScrollView und in dieser Bildansicht, ich erstellte viele Instanzen einer benutzerdefinierten UIView (geladen von NIB-Datei)Benutzerdefinierte Ansicht innerhalb der Bildlaufansicht innerhalb der Tabellenzelle reagiert nicht auf Ereignisse

UITableViewCell 
-- UIScrollView 
    -- MyView: UIView 

Nun MyView nicht Erkennung berührt, wird userInteractionEnabled auf jeder Ansicht in der Hierarchie auf JA gesetzt und ich versuchte, in beiden Richtungen

  1. touchesEnded implementieren: in MyView
  2. UITapGestureRecognizer In den es

Beide Wege funktionieren nicht, ich denke, es ist etwas mit der Tatsache, dass ich eine UIScrollView innerhalb des UITableViewCell

ich die Anwendung in Swift schreibe, nicht objektiv- C, ich glaube nicht, dass es eine Rolle spielt, da ich denke, dass es ein UIKit-Problem ist, aber wer weiß.

Wenn Sie einen Hinweis haben, bin ich ganz Ohr.

Danke

Antwort

1

Alternative für diesen Fall hinzufügen, ist UITableViewCustomCell und UICollectionView mit horizontalem Bildlauf in der kundenspezifischen Zelle hinzuzufügen. Es ist optimierter als das Hinzufügen von UIView in der Bildlaufansicht, da Sie die Vorgänge erheblich beschleunigen können. Anstatt viele Zellen zu instanziieren, instanziieren Sie so viele wie nötig, d. H. So viele, wie sichtbar sind (dies wird automatisch gehandhabt). Wenn Sie zu einem Bereich in der Liste scrollen, in dem sich "Zellen" befinden, die noch nicht ihre visuelle Darstellung haben, anstatt neue zu instanziieren, verwenden Sie bereits vorhandene.

+0

Ich habe eine benutzerdefinierte Ansicht Zelle und ich stimme völlig mit Ihnen überein, dass die beste Lösung, die von der UIKit zur Verfügung gestellt wird, ist die UICollectionView, aber die App ist bereits gebaut und ich möchte keine größeren Änderungen an der Hierarchie vornehmen. –