2016-10-19 4 views
0

Ich habe eine Ansicht an der Spitze meiner TableViewController.
Die Ansicht heißt viewBackground.
Es ist da, um den Post anzuzeigen, auf den der Benutzer geklickt hat, und in den Tabellenzellen werden die Kommentare angezeigt.Automatische Größenansicht auf TableViewController

Was ich tun möchte, ist die Größe viewBackground abhängig von der Größe des Etiketts theLabel.
Ich habe dies in den Zellen erfolgt durch das Etikett in den Zellen auf 0 Linien einstellen und durch diesen kleinen Code Umsetzung:

tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = 205 

Wie mache ich das gleiche mit meinem viewBackground?

Dies ist ein Bild des Tableview ist:

enter image description here

+0

Zeigen Sie mir Ihre Tabellenansicht UI –

+0

@HimanshuMoradiya es ist hinzugefügt. –

+0

Ich kann Ihre Frage nicht fangen. Bitte machen Sie etwas Klärung über das, was Sie eigentlich wollen –

Antwort

0

Ich schlage vor, einen Header für Ihre aktuelle Tableview -instead des Hinzufügens einer Außenansicht über it- zu machen, und dann können Sie diesen answer folgen, Es hilft Ihnen, wie Sie die Stringhöhe des Labels berechnen und in der tableView(_:heightForRowAt:) Methode zurückgeben können.

Hoffe das half.

+0

Ich denke, ich mache einen Header, indem Sie die Ansicht hinzufügen? –

+0

Ja, machen Sie es einfacher, indem Sie Ihrer Tabelle eine neue Zelle hinzufügen und die Methode [viewForHeaderInSection] (https://developer.apple.com/reference/uikit/uitableviewdelegate/1614901-tableview) implementieren. Bitte überprüfen Sie die URL in der Antwort, es sollte Ihnen helfen, die Höhe des Etiketts zu berechnen, aber anstelle von referenceSizeForHeaderInSection sollte es nur die Höhe sein ([heightForHeaderInsSection] (https://developer.apple.com/reference/uikit/ uitableviewdelegate/1614998-tableview)) –

+0

Wie auch immer, wenn Sie es überhaupt nicht verstehen konnten, stellen Sie sicher, dass [viewForHeaderInSection] (https://developer.apple.com/reference/uikit/uitableviewdelegate/1614901-tableview) ist passen Sie für Ihren Fall und schießen Sie einen Kommentar, ich bin froh, zu helfen :) –

0

Sie können eine Tabellenansicht mit zwei Abschnitten erstellen. Der erste Abschnitt enthält den ausgewählten Beitrag. zweiter Abschnitt - Kommentare. Wenn Sie brauchen, kann ich etwas Code zur Verfügung stellen.

0

Diesen Code hinzugefügt und es hat geholfen!

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    if let headerView = tableView.tableHeaderView { 
     let height = headerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height 
     var headerFrame = headerView.frame 

     //Comparison necessary to avoid infinite loop 
     if height != headerFrame.size.height { 
      headerFrame.size.height = height 
      headerView.frame = headerFrame 
      tableView.tableHeaderView = headerView 
     } 
    } 
} 
Verwandte Themen