Sichtbarmachen habe ich einen Viewcontroller mit einem tableview, die mit UITableViewAutomaticDimension rowHeight Objekt ist:Zelle mit stackview expandiert nicht, wenn ein Teil der stackview
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
private var items: [String] = []
@IBOutlet weak var tableView: UITableView!
// MARK: - UITableViewDataSource, UITableViewDelegate
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell") as! CustomTableViewCell
cell.expandButton.setTitle(self.items[indexPath.row], for: .normal)
return cell
}
// MARK: - View cycle
override func viewDidLoad() {
super.viewDidLoad()
items = [
"Allen","Upton","Hu","Yuli","Tiger","Flynn","Lev","Kyle","Sylvester","Mohammad",
"Harlan","Julian","Sebastian","Porter","Preston","Palmer","Jakeem","Micah","Stephen","Tucker"
]
self.tableView.estimatedRowHeight = 150
self.tableView.rowHeight = UITableViewAutomaticDimension
}
}
Die Schnittstelle in IB wird wie folgt definiert. Es hat eine benutzerdefinierte Zelle. Die Zelle enthält eine Stapelansicht. Im oberen Teil dieses Stackview gibt es einen Button und im unteren Teil ein Textfeld. Das Textfeld ist zunächst auf Versteckt gesetzt.
die Taste tippen, wird das Textfeld sichtbar machen. Die Zelle jedoch nicht erweitern nicht:
wird erwartet, dass die Zelle die ganze stackview angezeigt werden kann. Warum funktioniert das nicht?
(ich habe es bekommen durch Neuladen der Zelle zu arbeiten, aber dies ist eine hässliche Abhilfe, den Code in dem Viewcontroller benötigt.)
Projekt auf Github: https://github.com/bvankuik/TestResizingCell
Ist cell.layoutIfNeeded() als Lösung gemeint? Wo schlägst du vor, dass ich diese Linie setze? –