Und wieder touches vs tableview !!!

  • Und wieder touches vs tableview !!!

    Ich hatte mich bereits an einen anderen Thread gehängt, aber keine Antwort auf meine Frage bekommen... :evil:

    Theoretisch hört sich das einfahch an, die Touches abzufangen und/oder dann weiter zu geben ...
    Bei mir klappts nur bedingt, wenn es um einen TableView geht:

    Möglichkeit 1:
    Ich hab auf einem Main-ViewController ein TableView. Ebenfalls auf dem Main-ViewController ÜBER dem TableView lege ich ein transparenten View. Mit diesem fange ich Touches ab und gebe sie weiter an den TableView.
    Touches verarbeiten klappt; nach dem Weitergeben der Touches an die Tabelle, klappt auch das Selektieren einer Zelle. Das Scrollen der Table klappt jedoch nicht!!!
    Möglichkeit 2:
    Wie oben, nur lege ich den transparenten View direkt auf den TableView, da klappt das Scrollen der Tabelle, das Selektieren einer Zelle leider nicht.

    Zur Info:
    Die Views adde ich jeweils mit addSubview und die Touches gebe ich aus dem transparenten View einfach mit

    Quellcode

    1. [super touchesBegan:touches withEvent:event];


    weiter an den Parent, also einmal an den Main-ViewController, welcher das wiederum auf die gleiche Weise an die TableView weitergibt bzw. in Möglichkeit 2 direkt an den TableView!!

    Schön wäre nun wenn das Scrollen der Tabelle UND das Selektieren klappt, nachdem ich zuvor die Touches für mich auswerten konnte.
    Wer kann mir da Licht ins Dunkle bringen; muss ich bei der Weitergabe der Touches an den TableView etwas beachten?
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!
  • Also, mit "super" gibst du die Touches nicht an den Superview, sondern an die Superklasse weiter. Und generall, spricht etwas dagegen, die Touches von der TableView auswerten zu lassen? Z.B. einer Subklasse von UITableView? Mach ich so um Doubletaps auf Zellen rauszufischen.
    Widgetschmie.de • Life is too short for gadgets
  • Oh, stimmt, jedoch habe ich eine Variable, welche ich beim Erzeugen der Views setze, also den Parent somit übergebe.

    Eigentlich will ich eine Art Blättern hinbekommen. Zeige eine Tabelle; wische mit dem Finger nach links oder rechts und zeige daraufhin eine neue Tabelle mit Daten für "nach rechts" oder eben "nach links"!

    Fange ich das Wischen in der Zelle ab klappt die Haptik nicht so ganz, weil jemand nie genau innerhalb einer Zelle wischt und somit nur bei treffsicherem Wischen zur nächsten Tabelle gewechselt wird.

    Oder wie meinst du das bezogen auf mein Beispiel?!
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!
  • Original von contact
    Oder wie meinst du das bezogen auf mein Beispiel?!

    Bei deinem Anwendungsfall ist ein Overlay wohl eine gute Möglichkeit. Hast du das Übergeben mit [self superview] probiert? Theoretisch müsste ja die Tabelle (resp. die Zellen) die Touches an den Scrollview weitergeben, von daher müsste das eigentlich klappen.
    Widgetschmie.de • Life is too short for gadgets
  • Da ich ja Koordinaten auswerte um ein "Wischen" zu identifizieren, ist die Frage, ob ich aus einer Zelle heraus abfragen kann, wo meine Finger bezogen auf den TableView sind und nicht relativ zur Zelle... geht das? Dann würde das eventuell Zellenübergreifend mit touchesBegan in der einen Zelle und touchesEnd in einer anderen klappen; aber nur wenn ich die Koordinaten relativ zur Tabelle abfragen kann ...

    Ich muss gleich noch mal schauen, was ich wo übergebe ... mal sehen ob es auch zellenunabhängig geht ...
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!