Ich versuche, eine Tabelle Zellen bei der anfänglichen Belastung zu animieren. Die Animation funktioniert für alle Zellen, bis auf die letzte am unteren Ende der Tabelle, die nicht animiert werden soll.UITableView.visibleCells erfassen nicht alle sichtbaren Zellen
Dies ist, weil die UITableView.visibleCells
diese Zelle am Ende nicht zurückgibt. (es gibt Zellen 0-12 zurück, die letzte Zelle ist bei Index 13 und ist deutlich sichtbar)
Hier ist der Code. Kann ich irgendetwas tun, um sicherzustellen, dass alle Zellen animiert werden?
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
tableView.reloadData()
let cells = tableView.visibleCells
let tableHeight: CGFloat = clubsTable.bounds.size.height
for i in cells {
let cell: UITableViewCell = i as UITableViewCell
cell.transform = CGAffineTransformMakeTranslation(0, tableHeight)
}
var index = 0
for a in cells {
let cell: UITableViewCell = a as UITableViewCell
UIView.animateWithDuration(1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
cell.transform = CGAffineTransformMakeTranslation(0, 0);
}, completion: { (complete) in
})
index += 1
}
}
keine Antwort, aber ich muss wissen, um zu antworten, versuchen, die Höhe der Tabelle um + 30 Punkte hinzuzufügen, betrachtet sie 13 und animiert es? –
ja das Hinzufügen von 30 zur Tischhöhe macht es richtig animieren – prawn
das ist, weil die Höhe Ihrer Tabelle ist weniger als die Höhe von 13 Zellen. So animiert es 12 Zellen. Was Sie tun können, ist, die tableHeight in 30px größer zu machen, und nachdem die Animation fertig ist, ändern Sie die Höhe wieder auf normal. –