最近做了个项目,主要是用UITableView做界面,展示数据等等,由于UITableViewCell太过于复杂,所以需要优化,但查找了很多原因,发现根本原因在于UITableViewCell自动计算高度的时候,导致很耗费性能。
在没有太好的办法下,我使用了Facebook 开发的一个UI库:AsyncDisplayKit。这里给上官方文档,我觉得看这个足够入门了
http://texturegroup.org/docs/getting-started.html
这里主要说说遇到的问题,会持续更新,以及解决方法
1.ASTableNode reloadData 界面闪烁
解决:ASCellNode neverShowPlaceholders
<code>
class DetailCellNode: ASCellNode {
....
override init() {
super.init()
self.neverShowPlaceholders = true
...
}
....
}
</code>
2.ASTableNode reloadData 动画很奇怪,不想要动画
解决:可以用 tableNode.performBatchUpdates(nil, completion: nil) [等同于 tableNode.beginUpdate & tableNode.endUpdate] 替代 tableNode.reloadData()
3.ASButtonNode 不能设置 button type
解决:不要使用ASButtonNode,会没有高亮的默认效果
<code>
let buttonNode = ASDisplayNode { () -> UIButton in
let button = UIButton(type: .system)
......
return button
}
if let button = buttonNode.view as? UIButton {
button.addTarget()
}
</code>
未完待续......
网友评论