Control abhängig von Position in TableViewCell wird nicht getriggert

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

  • Control abhängig von Position in TableViewCell wird nicht getriggert

    Moin,

    ich hätte da mal ein Phänomen, dem ich einerseits gern auf die Schliche käme um es andererseits zu beseitigen.

    Folgendes Szenario:
    Ein iOS Control ähnlich einem 'Range Slider' (also ein Slider mit zwei Böppel statt einem) wurde erstellt und in seiner eigenen kleinen View auf Mark und Bein und Herz und Nieren geprüft. Und natürlich für funktional befunden.

    Selbiges Control landet jetzt in einer UITableViewCell.
    Ist die Positionierung des Controls jetzt so weit rechts, dass das Reorder-Control der Cell drüber lagert, greift diese logischerweise das Touchevent auf den rechten Böppel ab und wandelt es in einen Repositionierungsvorgang um.

    Ziehe ich das Control über die Constraints derart weit vom rechten Rand weg, dass optisch genug Abstand besteht, wird auch kein Repositionierungsvorgang mehr eingeleitet – dafür die Zelle selektiert sobald ich den rechten Böppel berühre.

    Ziehe ich das Control über die Constraints sichtbar weit vom rechten Rand weg, dass es quasi fast in der Mitte thront, dann bekommt der rechte Böppel seine Touch– und Dragevents.

    Erschwerend hinzu kommt, dass der linke Böppel permanent problemlos funktioniert.

    Bevor ich jetzt anfange der TableView zu verbieten, die Zelle an genau der Stelle auswählen zu können und zu hoffen, dass es dann klappt, daher meine Fragen:
    Wie kann ich erkennen, welcher Teil welches Controls mir wann welche Events wegfängt?
    Wie kann ich in diesem speziellen Fall sagen, dass mein Control bitte die höhere Priorität haben soll als die Zelle?
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Ich hatte mal ein ähnliches Problem mit einem Pageview. Ich konnte das lösen indem ich das UIView (In deinem Fall die UITableViewCell) gesubclassed habe und hitTest überschireben habe. Nur falls du keine bessere Lösung findest.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Danke für den guten Tipp!

    Dadurch habe ich festgestellt, dass der Setter der Maximallänge irgendwie nicht aufgerufen wurde…
    Wenn der Slider einen Range von 1–100 hat, man dem UI aber sagt es gehe von 1–115, der Slider davon aber nix mitbekommt, wird das spontan etwas schwieriger. Irgendwie mag er sich in der Implementierung dann nämlich nicht (mehr) bewegen lassen, da er ja außerhalb seines Range wäre…

    Immerhin habe ich jetzt einen greifbaren Fehler, mit dem ich arbeiten kann. =)
    Ich glaube, ich schulde Dir auf der nächsten Macoun ein Bier!
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P