2016-11-04 2 views
0

Ich verwende derzeit das Storyboard in xcode, um das folgende Layout zu erstellen. Der gesamte Bildschirm ist ein TableView mit 2 verschiedenen Prototyp-Zellen. Abhängig von den verfügbaren Daten wird eine der 2 Zellen erstellt.UITableView oder StackView

Für die zweite Zelle, was ist die beste Möglichkeit, die Tabellenansicht mit Label2 und img2? Ich habe versucht, es in eine einfache Stapelansicht mit 1px Zeile (ein UIView) gezeichnet über, aber die Zeile erscheint dünner oder Ticker je nach Bildschirmgröße des Geräts.

Ein TableView löst das Zeilenproblem, aber es scheint eine Menge Arbeit für solch ein einfaches Layout zu sein. Insbesondere wenn eine TableView in einem TableView eingebunden ist.

Ist Stackview der Weg, hier zu gehen? Vielleicht fehlt mir etwas, das dazu führt, dass die Trennlinien auf den verschiedenen Geräten unterschiedlich aussehen? Oder ist eine andere tabellarischere Methode, dies zu tun?

enter image description here

+0

Hinweis: Oft erscheinen die Linien auf demselben Bildschirm dicker oder dünner. Wie die ersten 2 Zeilen wird alles gut, aber die dritte wird dicker sein. – tsf144

+0

Hinweis 2: Die Linien auf 2px Höhe scheinen einheitlicher zu sein. Aber das UI sieht mit 2 px Linien schlecht aus. – tsf144

Antwort

0

Ich kann vielleicht eine Lösung denkt Grenze in der Schicht der Ansichten mit:

view.layer.borderColor = UIColor.black.cgColor 
view.layer.borderWidth = 1 

ich nicht wirklich wissen, was Ihre stackView aussieht, aber ich denke, Sie diese Lösung anpassen konnten in Ihr Fall :)

+0

Ja, ich gab der Linie eine konstante Höhe von 1 px. Ich gab den Zellen sogar eine konstante Höhe von 30px, aber das hilft auch nicht. Ich vermute, dass das automatische Layout versucht, jede Diskrepanz im Zelleninhalt auszufüllen, aber ich bin mir nicht sicher, warum eine Zeile mit fester 1px Höhe anders aussehen würde. – tsf144

0

Hmm, ein sehr Anfänger Fehler. Es stellt sich heraus, dass es nur der Simulator ist. Wenn ich es auf einem tatsächlichen Gerät verwende, ist alles in Ordnung. Denken Sie im Simulator daran, den Zoom auf 100% einzustellen. (cmd + 1/2/3) Ansonsten erscheinen dünne Linien wie diese sehr unterschiedlich.

Wie für die gewählte Methode, ich ging einfach mit Stackview mit UIView von 1px zwischen den einzelnen Zellen. Dies ist viel einfacher mit Daten für solch einfaches Layout zu füllen.

Verwandte Themen