2017-02-25 5 views
1

Ich versuche, die Zeilenhöhe dynamisch auf dem im Detail Beschriftung gesetzt Inhalt basierend einzustellen, indem Sie den Code unten in Teil A mitdynamisch die Höhe der Zelle Tableview anpassen basierend auf dem Inhalt - iOS Swift

Ich füge einige Zeilen Text in das Detailtext-Etikett einer Zelle ein, wie unten in Teil B gezeigt. Ich habe mir ähnliche Fragen angesehen, aber keine hat geholfen.

Kann mir jemand einen Ratschlag geben, wie ich die Zeilenhöhe dynamisch anhand des Inhalts der Detailtextbeschriftung anpassen kann.

Teil A

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

auch versucht

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension 
    } 

Part B

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "daysIdentifier", for: indexPath) 

     cell.textLabel?.text = days[indexPath.row] 

     cell.detailTextLabel?.numberOfLines = 0 

     var joinedString   = self.availabilityTimeDict[dayName]?.joined(separator: " \n ") 
     cell.detailTextLabel?.text = joinedString 
     return cell 
    } 

enter image description here

+2

Legen Sie die Beschriftung oben und unten fest und legen Sie auch tableView.EntimateRowHeight = 50 fest –

Antwort

8

benutzerdefinierte Zellen und Etiketten. Richten Sie die Einschränkungen für das UILabel ein. (Oben, links, unten, rechts) Set Linien des UILabel auf 0

Fügen Sie den folgenden Code in der viewDidLoad Methode des Viewcontroller:

tableView.estimatedRowHeight = 68.0 
tableView.rowHeight = UITableViewAutomaticDimension 

// Delegierter & Datenquelle

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension; 
} 

Swift 4:

// Delegierter & Datenquelle

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 
2

give oben, unten, führt und unterhalb Methoden der Tabellenansicht

func tableView(_ tableView: UITableView,heightForRowAt indexPath:IndexPath) -> CGFloat 
{ 
return UITableViewAutomaticDimension 
} 

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat 
{ 
return 100 
} 
0
  • Erste Setup eine benutzerdefinierte Zelle und fügen Sie ein Label für Ihre Einzelstücken Inhalt tableview.Use Hinter und legen Sie die Anzahl der Zeilen auf Null und geben Sie der Inhaltsanzeige der Zelle untere, obere, führende, nachstehende Einschränkungen (geben Sie nicht die Höhe) auch eine benutzerdefinierte Höhe Zelle in Größe Inspektor dann in viewDidLoad müssen Sie nur tun,

tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 100.0

Verwandte Themen