2 Verschachtelte UIScrollViews externes reagiert unerwünscht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 2 Verschachtelte UIScrollViews externes reagiert unerwünscht

    Hallo,
    mein erster Beitrag mit einer Frage zum Cocoa touch framework!
    Vor:
    Ich hoffe das die Problem Beschreibung ausreichend ist, ich wollte nicht Text überladen Posten und vom lesen abschrecken ;)

    Es geht um das "Master" scroll view das den ganzen screen vom iPad füllt.
    Es macht mir Probleme mit dem scroll event (vertikal).

    Das iPad ist in Portrait Orientation, also: w768 h1024.
    Der content ist w768 h1024 * n wobei n > 1

    Ich hoffe ich werde nicht zu mathematisch ...
    Der Inhalt ist also genau so breit und wesentlich größer in der Höhe.

    Das master scrollview enthält weitere scrollviews die untereinander angeordnet sind aber wesentlich breiter als die 768, um Horizontal dessen content zu scrollen.
    Problem:
    Der Fokus des scroll events soll auf dem master scroll view liegen, tut es aber nicht.
    im gegen teil es ist gefühlt richtig schwierig dieses vertikal zu scrollen, immer bekommen die inneren Views das event, egal ob Simulator oder Device.

    Ich habe folgende Implementierungen versucht:
    1. Mit einer Kategorie für das "master" SV in dem ich die -(void)touchesBegan: methode implementiere und dort das scrolling der inneren SV deaktiviere und programmatisch das viewDidScroll einleite des master SV.
    2. Ich hatte es auch mit den SV.properties versucht (exclusiveTouch, canCancelContentTouches, ... ) .
    3. Ich habe es auch versucht mit ein delegate Object, und die Protokoll selectoren implementiert. in denen habe ich selbes versucht das externe SV zur seine Arbeit zu überreden das event kommt nicht an (Primär innere) .
    4. Die Property delaysContentTouches war auch sehr viel versprechend, "Ob gewartet wird für die Unterscheidung zwischen touch event or swipe"
    5. Ich habe in der class reference nicht die methode touchesShouldCancellInContentView: übersehen und zielstrebig auch diese eingesetzt ohne erfolg.
    6. Aus lauter Verzweiflung habe ich auch bei den inneren resignFirstResponder versucht und diesen dann auf das externe zu setzen ob das überhaupt Sinn macht, na ja.

    Ich bin nicht in der Lage den Fokus auf das externe ScrollView für das vertikale scroll event zu realisieren und sekundär erst das event an die inneren zu geben.
    Es scheint als würden die internen Views immer die Priorität behalten.

    Für Theoretische Beispiele bin ich genau so dankbar wie für Demo Code, tips bekannte Fallstricke ect...
    Ich bin schon so lange am Programmieren aber so etwas scheinbar einfaches will mir nicht gelingen.

    Ich verspreche das wenn mir hier geholfen wird, nur der richtige Wink mit dem Zaunpfahl, dann werde ich hier in diesem Forum pro Aktive!

    DANKE Lg
  • Hört sich schwierig an :) woher soll das iPad schließlich wissen welchen ScrollView du meinst? Du könntest vielleicht einen Rand rechts oder links lassen (d.h. die inneren ScrollViews sind nicht ganz so breit wie der äußere ScrollView), sodass man da den äußeren zu packen kriegt... oder so.
  • Warum machst Du nicht einfach nur 1 Scrollview mit paging und setzt die Größe und Position entsprechend ?

    Bei zwei SCrollviews wird dirt wohl nichts anderes über bleiben als die gesamten GEstures selber nachzuprogrammieren. Also die TouchesBegan/Move/End des vorderen Views zu behandeln. Aber das ist ein riesen Aufwand.

    Alternativ kannst Du auch einfach noch mal über Dein UI Konzept nachdenken. Das was Du da machen willst ist im Grunde ja nichts anderes als eine Navigation based app.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)