youngsoft / TangramKit

TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView
MIT License
1.21k stars 175 forks source link

我下载了demo,发现tableview的例子非常非常卡啊。。。 #9

Closed frozen5555 closed 7 years ago

frozen5555 commented 7 years ago

demo运行在iPhone6和iPhone6plus上面,ios10.3.1 ,特别特别卡,滚动起来一卡一卡的,非常明显,几乎属于不可用的。。。感觉比使用纯autolayout布局的还卡好多。。。其他页面还好,就tableview卡顿明显。

frozen5555 commented 7 years ago

还是非常喜欢你这个布局框架的,简单易用,就是tableview卡顿让我没法使用。。。

frozen5555 commented 7 years ago

刚试了下oc版本的,发现卡顿没有那么明显(但也有轻微卡顿),会好很多,不知什么原因导致。

youngsoft commented 7 years ago

您好! 非常感谢您的反馈,也有其他同学反馈swift版本有卡顿。你的设别是在iphone5真机上吗?还是其他什么设备上???我这边对症下药。

frozen5555 commented 7 years ago

是iphone6 和 iphone6plus 真机测试的。

youngsoft commented 7 years ago

您好!我这边做了一定的优化,如果你方便的话联系我QQ: 156355113 或者我联系你,想让你在设备上做一个优化后的测试。。

youngsoft commented 7 years ago

您好! 新版本1.0.7已经发布成功,这次针对您提出的卡顿的问题对swift版本进行了再次的优化:

  1. 对原先的KVO机制进行优化,因为系统本身的原因必须用到KVO机制,这个机制会在一定程度上影响性能。因此这次优化我将KVO的添加处理为了懒加载模式,这样只有在必要的时候才进行KVO监听,这样就可以减少视图的构建时间和布局时间。

  2. 经过实际的实验发现,如果系统中设置了UILabel高度自适应的话,而且当您使用系统的字体:UIFont.systemFont(size:)方法来构建UILabel的字体时,在UITabelviewCell动态高度情况下将导致卡顿的发生,具体原因有可能是系统的字体在计算UILabel的尺寸时非常消耗性能和CPU。

  3. 这次针对TangramKit支持UITableViewCell高度自适应上,我优化了处理的方法,具体的逻辑您可以查看DEMO中的:AllTest1TableViewCellAllTest1ViewController的实现逻辑。

4.这次新版本还在其他地方优化了TangramKit的性能。