Doppelganger 1.3.1

Doppelganger 1.3.1

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最新发布2015年4月

Sash Zats维护。



  • 作者:
  • Sash Zats

简而言之:

bad ux good ux
不良的用户体验 良好的用户体验1

1:有意减速以展示其卓越之处

解决的问题

  • 计算突变太困难,你只是在自己的集合或表格视图中调用reloadData吗?
  • 用户,纳闷那一行难道消失了?
  • 行,突然跳出来了吗?
  • 丢失滚动位置了吗?

Doppelganger就是为了帮助这些问题而来的!

用法

NSArray *oldDataSource = self.dataSource;
self.dataSource = [self _updatedDataSource];
NSArray *diffs = [WMLArrayDiffUtility diffForCurrentArray:self.dataSource
                                            previousArray:oldDataSource];
[self.tableView wml_applyBatchChanges:diffs
                            inSection:0
                     withRowAnimation:UITableViewRowAnimationRight];

实现细节

  • 目前,doppelganger仅支持唯一元素的数组,例如,如果您的数组中有重复的元素,结果将不可预测。
  • 如果您使用自定义类,请确保正确实现了isEqual:hash方法:http://nshipster.com/equality/
  • 故意没有处理分区。根据我们的经验,使用严格的相等于散列进行分区匹配更难。但是,如果这是您的情况,您可以自由使用Doppelganger进行分区。

待办事项

  • 改进计算移动元素时的O(n2)性能。
  • NSArray抽象API。
  • 您的issue / pull request。

安装

作者

Sash Zats,[email protected]

许可

Doppelganger可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。