AsyncDisplayKit 使用心得

最近做了个项目,主要是用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>

未完待续......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,215评论 1 9
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 8,907评论 2 4
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,342评论 30 472
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 9,153评论 2 7
  • 分析大众心理走中国销售之路 Todywu2013-12-2 在我们的生活圈里,发生着不同的版本销售,老套搭台子免费...
    todywu阅读 4,383评论 0 51