2016-10-17 6 views
1

Ich kodiere Swift 2.0 für Geräte mit iOS7 +.Ist es möglich, eine Tabellenansicht 'schief' darzustellen?

Ist es möglich, eine Tabellenansicht in einem schiefen/diagonalen/schrägen Format wie unten dargestellt darzustellen?

Skewed TableView

Offensichtlich, wenn die Antwort ja ist, was Prozess brauche ich, um durch zu gehen, um das Ergebnis zu bekommen?

+0

kann es tun (nicht sicher, ob Sie _should_ though), indem Sie eine Transformation für die TableView bereitstellen. Etwas wie [Warnung: nur ein dummes zufälliges Beispiel]: 'tableView.transform = CGAffineTransform (rotationAngle: CGFloat (-0.2))' (oder ein 'CATransform3D' zu seiner Ebene) – Alladinian

+0

thx @Alladian wird das überprüfen, obwohl ich denke, Duncan's Kommentar unten könnte dies für mich ungeeignet machen aufgrund der Taps-Ausgabe – RobertyBob

Antwort

3

Ja, es ist möglich. Ansichten in iOS haben eine Transformationseigenschaft vom Typ CGAffineTransform. Sie können das verwenden, um die Ansicht schief zu machen. Ich weiß nicht ohne weiteres, wie man eine Transformation erstellt, die den Verzerrungseffekt erzeugt. Ich schlage vor, einige Google-Suche zu machen.

Die nächste Ausgabe, mit der Sie konfrontiert werden, ist die Interaktion mit Taps. Wenn Sie die Transformation einer Ansicht ändern, wird das auf Taps angewendete Koordinatensystem nicht transformiert, sodass die Taps weiterhin auf den nicht verzerrten Ansichten landen. Das wird viel schwieriger zu klären sein, und ohne eine Menge Forschung zu betreiben, habe ich keine Antwort darauf. (Es wäre wahrscheinlich möglich, Berührungsereignisse abzufangen, bevor sie zu Ihrer Tabellenansicht gelangen, und die Umkehrung Ihrer Schiebetransformation auf diese anzuwenden, so dass Sie die Abgriffe wieder dem rechtwinkligen Koordinatensystem zuordnen, das die Tabellenansicht erwartet.)

+0

Thx Duncan - das ist gut zu wissen für zukünftige Referenz, aber die Taps Problem hervorgehoben öffnet in der Tat eine Dose Würmer ich hätte gehofft zu vermeiden, so denke einige grafische "Fälschen" von einer Schräglage muss hier vielleicht der Kompromiss sein - wird nicht den gleichen Gesamteffekt geben, aber wird eine ganze Menge Kopfschmerzen ersparen – RobertyBob

+0

Ich habe mich entschieden, mit einer CGAffineTransform zu gehen, da die Schräglage in meinem Fall eigentlich keinen nennenswerten Versatz darstellt tippt auf die Zelle und ich kann alle Elemente in der Zelle, die quadratisch bleiben sollten, 'rückwärts schiefstellen' - wenn Sie den Kopf um die Mathematik herumführen können, die mit der Bewältigung der Transformation dieser Sache zu tun hat s sind sehr nützlich – RobertyBob

+0

Sie sollten in der Lage sein, eine benutzerdefinierte Unterklasse von UITableView zu erstellen, die die Koordinaten von Abgriffsereignissen verzerrt, bevor sie an die UITableView-Vorgängerklasse übergeben werden. Ich glaube, Sie würden die Umkehrung der CGAffineTransform der Ansicht anwenden, um die Abgriffkoordinaten zu transformieren. –

Verwandte Themen