Eingeschränkte Touchfunktionalität in Tableview

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

  • Eingeschränkte Touchfunktionalität in Tableview

    Hallo zusammen,

    ich brauch Eure Hilfe. Und zwar habe ich folgendes versucht. Von Apple gibt es ein Beispielcode (iOs 7) wie man in einer Tabelle ein Datum auswählen kann (Projekt heisst DataCell). Das habe ich genommen und in ein Container View gepackt (hab noch eine 2. Tableview, bessere Codetrennung, deshalb). Der Container ist genau so gross wie die Tabelle die darin enthalten ist. Wenn man auf die Tabellenzeile klickt, wird eine Zeile mit dem UIDatePicker hinzugefügt. Damit aber das UIDatePicker sichtbar wird, muss ich den Container vergrössern. Hab das zuerst mit Constraint auf dem TableView im Container versucht und dann im Code direkt mit dem Container. Die Grösse passt sich an, dass ist nicht das Problem.

    Der Touch funktioniert nicht im vergrüsserten Bereich. Nur im ursprünglichen Bereich. Habs versucht mit setNeedsLayout und layoutIfNeeded, aber das bringt nichts. So wie es aussieht, habe ich einen Layer, der nicht vergrössert wird, aber ich weiss nicht welcher.

    Falls jemand einen Tipp hat, danke im voraus für die Hilfe.

    Gruss
  • https://www.dropbox.com/s/j003xw1bedtsd9g/Screenshot 2014-03-09 22.18.36.png

    Der Link zeigt wie es aussieht und aussehen soll. Das Aussehen ist nicht das Problem, sondern der Touchbereich innerhalb des "Container View Controllers" ist trotz der Vergrösserung der Tabelle immer noch auf die ursprüngliche Grösse begrenzt. Also wenn ich z. B.: mit dem Cursor "March" im Screenshot bewegen will, geht das nicht, Aber z. B.: mit "December" geht es.
  • Ich dachte eher an einem Fullscreen Screenshot, so dass man vielleicht auch erkennen kann, wo die einzelnen Views der View Controller innerhalb des Container View Controllers liegen.

    Wenn Du z.B. den View des 1. View Controllers innerhalb des Container View Controllers vergrößerst, dann musst Du natürlich den View des 2. View Controllers entsprechend verkleinern. Alternativ musst Du den View des 1. View Controllers in den Vordergrund legen.

    Dies lässt sich in dem o.a. Screenshot leider nicht erkennen.

    Hilfreich kann es auch sein, wenn man dem Hintergrund der Views eine halbtransparente Farbe verpasst, um zu sehen wie groß diese eigentlich sind. Dies ist bei einem Table View Controller ggf. nicht ganz so einfach. Alternativ kann man sich die Größe der Views einfach per NSLog ausgeben lassen und diese dann prüfen.

    Wenn sich ein View innerhalb einer View Hierarchie nicht komplett bedienen lässt, dann liegt es meist daran, dass ein Superview zu klein ist, sprich der entsprechende View über die Grenzen eines Superviews hinausragt und somit die Touch Events nicht verarbeitet werden.

    Hier kann es hilfreich sein bei allen Superviews clipsToBounds zu setzen, so dass alle Subview entsprechend "abgeschnitten" werden, wenn diese über den Superview hinausragen.
  • Also, ich hab mal an verschiedenen Orten Logs ausgegeben und konnte den Verursacher eruieren. Das Problem ist das UITableView Control im Container View Controller. Die Grösse verändert sich nicht. Es bleibt auf der Ausgangsgrösse.

    Habe mit setBounds und setFrame versucht die Höhe anzupassen. Ohne Erfolg. Hat jemand noch eine Idee?