2017-02-11 7 views
0

Ich versuche die Größe der Tabellenansicht dynamisch zu ändern, indem ich die Größe an ihren Inhalt anpasse (Anzahl der Zeilen). Die Zeilenhöhen sind auf 300 festgelegt und wenn ich den Knopf unter dem Tisch drücke, muss ich seine Höhe vergrößern.Größe der UITableView-Höhe dynamisch ändern

Ich habe deaktiviert Scrollsteuerung in UITableView tryed und diesen Code in viewDidAppear setzen, aber ich nicht das richtige Ergebnis erhalten:

DispatchQueue.main.async { 
      var frame: CGRect = self.tableView.frame; 
      frame.size.height = self.tableView.contentSize.height; 
      self.tableView.frame = frame; 
} 

Ich habe auch dieses Verfahren zu implementieren versucht, und sie nennen, bevor ein hinzufügen Reihe:

func tableView_Auto_Height() 
    { 
     if(self.tableView.contentSize.height < self.tableView.frame.height){ 
      var frame: CGRect = self.tableView.frame; 
      frame.size.height = self.tableView.contentSize.height; 
      self.tableView.frame = frame; 
     } 
    } 

ich habe dieses Schema-Ansicht:

components scheme

Antwort

0

Schließlich löse ich das Problem eine Ansicht hinzu, dass der Scrollview enthält (Ansicht anhängen Bild) und andere Ansicht vor der Rolle, und das Hinzufügen dieser Zeile in der Schaltfläche:

let numberForConstraint = CGFloat((detailLines.count + 1) * 300) 
tableHeightConstraint.constant = numberForConstraint 

Vielleicht nicht die beste Lösung, aber diese löst, ist mein Problem.

enter image description here

+0

300 ist die Höhe für meine Zeilen konfiguriert –

Verwandte Themen