Ich mache Widget. Ich muss die Zellenhöhe mit Animation ändern. Wenn Sie auf "Mehr anzeigen" klicken, gehen Sie auf zusätzliche Steuerelemente. enter image description hereUITableView Zelle Höhe Animation
Ich schrieb diesen Code
tableView.beginUpdates()
showModes(alpha: 1, duration: 0.2, delay: 0.1)
tableView.endUpdates()
func showModes(alpha: CGFloat, duration: CGFloat, delay: CGFloat) {
if tableView.numberOfRows(inSection: 0) != 0 {
for i in 0...tableView.numberOfRows(inSection: 0)-1 {
let indexPath = IndexPath(row: i, section: 0)
if let cell = tableView.cellForRow(at: indexPath) as? WidgetCell {
UIView.animate(withDuration: TimeInterval(duration), delay: TimeInterval(delay) ,animations: {
if alpha == 0 {
cell.favoriteConstraint.constant = -45
} else {
cell.favoriteConstraint.constant = 10
}
cell.favoriteMode.alpha = alpha
self.tableView.layoutIfNeeded()
})
}
}
}
}
Aber es reibungslos funktioniert nicht. es zuckt dramatisch auf und ab. Wie bekomme ich das zum Beispiel im Wetter-Widget von Apple flüssig?
Ja, es ist alles hinzugefügt Überschreibung func viewDidLoad() { super.viewDidLoad() ledControllers = readLED() self.tableView.estimatedRowHeight = 300 self.tableView.rowHeight = UITableViewAutomaticDimension } Ich habe ein Video aufgenommen, um es klarer zu machen. Die erste Zelle wird erweitert, und erst dann beginnt die Animation. Ich wünschte, dass es war wie ein Wetter Widget https://youtu.be/f4D7NnoyWrQ P.S. Судя по нику вы говорите по русски? – MacSergey