Ich habe eine UITableView in einem normalen ViewController und ich möchte die gesamte Höhe der Tabellenansicht anpassen.Größe ändern TableView Height nach
Ich erstellte die Tabellenansicht über Storyboard, und ich lade Daten von einer API in meinem ViewDidLoad
. Ich habe die Zellen in der typischen Tableview-Methode eingerichtet.
override func viewDidLoad() {
self.loadPerformers()
setupTableView(performersTableView)
}
func setupTableView(tableView: UITableView) {
tableView.dataSource = self
tableView.delegate = self
tableView.estimatedRowHeight = 90
tableView.rowHeight = UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if tableView == self.performersTableView {
let performerCell = tableView.dequeueReusableCellWithIdentifier("PerformerCell", forIndexPath: indexPath) as! PerformersTableViewCell
let performer = self.performersArray[indexPath.row]
performerCell.performerPic.image = getPerformerImage(performer.english_name)
performerCell.performerName.text = performer.english_name + " " + performer.japanese_name
cell = performerCell
}
return cell!
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var count:Int?
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
tableView.separatorColor = UIColor.clearColor()
tableView.allowsSelection = false
if tableView == self.performersTableView {
count = self.performersArray.count
}
return count!
}
Das Problem, das ich habe, ist die Tabellenansicht bleibt die gleiche Höhe nach dem Laden der Daten. Unten lade ich vier Elemente, aber es zeigt nur 2. Die Tabellenansichtshöhe ändert sich nicht.
Ich habe ein paar Dinge ausprobiert, unter ihnen ist die Höhe des Tableview Rahmen in der viewWillAppear
Wechsel:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let newHeight = self.performersTableView.rowHeight * CGFloat(self.numberOfPerformers)
self.performersTableView.frame = CGRectMake(performersTableView.frame.origin.x, performersTableView.frame.origin.y,
performersTableView.frame.size.width, newHeight)
}
Dies tut jedoch nichts, so bin ich Missverständnis etwas in der Renderprozess. Wie kann ich den Tisch mit meiner gewünschten Höhe erneut anzeigen?
Ist die Tabellenansicht in einem Storyboard/Xib erstellt? – Lahav
Haben Sie numberOfRowsInSection auf self.performersArray.count gesetzt? –
zeigen, was Sie erreichen möchten, möchten Sie die Tabellenansicht Höhe basierend auf der Anzahl der Zeile ändern? oder wollen Sie einfach aussehen wie Design, indem Sie etwas Höhe erhöhen? – Tj3n