SwiftBond v4系でアニメーションせずにUITableViewの更新ができるようになりました!
ViewBindingで有名なSwiftBondですが、つい3時間前にアニメーションせずにUITableViewとUICollectionViewの更新ができるようになりました。
実はこれ、v3系ではできていたんですが、Swift2.0にアップデートすると上げざるをえないv4系ではできなくなっていたんですね。。。
それが今日できるようになりました。よかった。
v4.3.0
Support for non-animatable collection/table view updates.
具体的なコードはこちら(要点のみ)
いつも通りtableViewにdataSourceをバインドして、、でも、今回は、proxyDataSourceを指定します。proxyDataSourceはBNDTableViewProxyDelegate
に準拠している必要があります。
dataSource.bindTo(tableView, proxyDataSource: self) { (indexPath, dataSource, tableView) -> UITableViewCell in
let string = dataSource[indexPath.section][indexPath.row]
...
return cell
}
そして、BNDTableViewProxyDelegate
のこちらのメソッドを実装します。
func shouldReloadInsteadOfUpdateTableView(tableView: UITableView) -> Bool {
return true
}
「UITableViewのUpdateじゃなくて、Reloadを行う」って意味のメソッドです。これだけ!やった!
プルリク送りました
実はこれ僕がpull request送りました。ただ、議論の末にマージされた時点ではだいぶ形が変わりましたが、実現したいことは作者と同じでブレていなかったので最終的にマージされました〜。よかった!
v4系に上げてうまく動かないと苦しんでいる誰かのお役に立てれば!
SwiftBond
Author And Source
この問題について(SwiftBond v4系でアニメーションせずにUITableViewの更新ができるようになりました!), 我々は、より多くの情報をここで見つけました https://qiita.com/morizotter/items/f057b4a3d0285cc385bb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .