2016-04-10 11 views
3

Ich wollte die dynamische Tabellenzellenansicht erstellen, die das Element entsprechend dem Text im Label ausrichten kann. Die Zellenhöhe unterscheidet sich wie der Text in der Beschriftung. Was sind die besten Ansätze, um diese Art von Designs zu entwerfen? how to get exact alignment in the table view cell as label text is in three lines other element align horizontally in centre i don't want to truncate the tail i want full text.Dynamische Tabellenansichtszelle

if the text is in two lines sample.

Vielen Dank im Voraus.

+0

Sie können das richtige Etikett mit der gleichen Höhe wie das linke Etikett erstellen. Versuchen Sie dann, den Text in der Mitte auszurichten. Dazu können Sie ein benutzerdefiniertes Label erstellen, das den Text in der Mitte ausrichtet. –

Antwort

0

allererst Sie zum Beispiel in Ihrem viewDidLoad einstellen:

+-view----------------+ 
|  |    | 
| -label-   | 
|  |    | 
| +-subview--------+ | 
| |  | |  | | 
|-| -label-label- |--| 
| |  | |  | | 
| | -label-  | | 
| |  |   | | 
| +----------------+ | 
|  |   | 
|  -label-   | 
|  |   | 
+---------------------+ 

:

tableView.estimatedRowHeight = 160 
tableView.rowHeight = UITableViewAutomaticDimension 

Dann, wenn Sie Ihre xib Zelle ziehen, können Sie dieses Schema folgen wobei für jedes Label die oberen, unteren, führenden und nachlaufenden Beschränkungen gesetzt sind. Wenn Sie eine Etikettengruppe komprimieren müssen, können Sie eine Unteransicht hinzufügen, um sie in die Etiketten aufzunehmen.

+0

Danke Alessandro Ornano für die Antwort und Lösung. Gibt es eine Möglichkeit, Stapelansichten zu verwenden, die in iOS 9 eingeführt wurden? – niks290192

+0

Sicher, ich denke Stack Views sind die Zukunft. Ich mag zum Beispiel die Einführung hier http://www.appcoda.com/stack-views-intro/ aber für den Moment, wenn Sie ein iOS 8.x kompatibel machen wollen, können Sie sie nicht verwenden, wie im offiziellen Leitfaden https:/erklärt /developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/ –

+0

Danke für die wertvollen Informationen. Kannst du mir bitte ein paar Links zu Autolayout und Constraints geben, damit es mir leicht fällt, die Methoden zu verstehen, wie ihr Mechanismus funktioniert? – niks290192

0

Zur Ausrichtung:

Sie können das richtige Etikett mit derselben Höhe wie links Etikett erstellen. Dann versuchen Sie, Text in der Mitte auszurichten. Dazu können Sie die UILabel-Klasse ableiten und die Text-Rect-Ausrichtung in die Mitte ändern.

For Dynamic Height: 
1. Use auto layout when creating your table view cells. 
2. Set the table view rowHeight to equal UITableViewAutomaticDimension. 
3. Set the estimatedRowHeight or implement the height estimation delegate method. 

    Pro Tip: the trick to getting auto layout to work on a UITableViewCell is to ensure you have constraints to pin each subview on all sides — that is, each subview should have leading, top, trailing and bottom constraints. 
    Furthermore, you need a clear line of constraints going from the top to the bottom of the contentView. This ensures that auto layout correctly determines the height of the contentView based on its subviews. 
    The tricky part is that Interface Builder often won’t warn you if you’re missing some of these constraints; auto layout simply doesn’t return the correct heights when you run the project. For example, it may return 0 for the cell height, which is a clue that your constraints need more work. 
    If you run into issues when working with your own projects, try adjusting your constraints until the above criteria are met. 


For Detail, please refer to original source of above text is https://www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift 
Verwandte Themen