AsyncDisplayKit 使用心得

最近做了个项目,主要是用UITableView做界面,展示数据等等,由于UITableViewCell太过于复杂,所以需要优化,但查找了很多原因,发现根本原因在于UITableViewCell自动计算高度的时候,导致很耗费性能。
在没有太好的办法下,我使用了Facebook 开发的一个UI库:AsyncDisplayKit。这里给上官方文档,我觉得看这个足够入门了
http://texturegroup.org/docs/getting-started.html

这里主要说说遇到的问题,会持续更新,以及解决方法

1.ASTableNode reloadData 界面闪烁

解决:ASCellNode neverShowPlaceholders

class DetailCellNode: ASCellNode {
....
override init() {
super.init()
self.neverShowPlaceholders = true
...
}
....
}

2.ASTableNode reloadData 动画很奇怪,不想要动画

解决:可以用 tableNode.performBatchUpdates(nil, completion: nil) [等同于 tableNode.beginUpdate & tableNode.endUpdate] 替代 tableNode.reloadData()

3.ASButtonNode 不能设置 button type

解决:不要使用ASButtonNode,会没有高亮的默认效果

let buttonNode = ASDisplayNode { () -> UIButton in
let button = UIButton(type: .system)
......
return button
}
if let button = buttonNode.view as? UIButton {
button.addTarget()
}

未完待续......

你可能感兴趣的:(AsyncDisplayKit 使用心得)