初期ロード時にテーブルビューのセルをアニメーション化しようとしています。アニメーションは、アニメーション化を拒否するテーブルの最後のものを除いて、すべてのセルで正常に動作します。UITableView.visibleCellsがすべての可視セルをキャプチャしていない
UITableView.visibleCells
が最後にこのセルを返さないためです。 (セル0-12を返し、最後のセルはインデックス13にあり、はっきりと見えます)
ここにコードがあります。すべての細胞をアニメーション化するために私ができることはありますか?あなたはlet cells = tableView.visibleCells
は、あなただけのこれらの関数のシグネチャ上のメモリをオフに行く
let indexPath = NSIndexPath(forRow: cells.count, inSection: 0)
cells.append(tableView.cellForRowAtIndexPath(indexPath))
ような何かを行うことはできませんが、あなたはポイントを得る呼び出した後
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
}
}
答えはありませんが、私は答えを知る必要があります。テーブルの高さを+ 30ポイントで追加しようとすると、それを13とみなしてアニメーション化しますか? –
はいテーブルの高さに30を追加すると、テーブルの高さが13セルの高さよりも小さいため、正しくアニメーション化されます。 – prawn
です。これにより、12個の細胞がアニメ化されます。できることは、30pxでtableHeightを大きくし、アニメーションが完了した後に高さを通常に戻すことです。 –