您的代码通常在引起帧率下降之前有不到十毫秒的时间来运行。1
注入4个类
UITableViewCell
UICollectionViewCell
UITableViewHeaderFooterView
UICollectionReusableView
(作为脚部和头部)监视6个敏感的 API 调用
[UIView drawRect:]
tableView:cellForRowAtIndexPath
tableView:viewForHeaderInSection
tableView:viewForFooterInSection
collectionView:cellForItemAtIndexPath
collectionView:viewForSupplementaryElementOfKind:atIndexPath
以两种方式可视化糟糕的绘图代码
步骤1:将 DWURecyclingAlert.m 添加到您的项目中,Swift 或 ObjC。
步骤2:没有步骤2。
(可选)使用 CocoaPods 并手动开始注入
pod 'DWURecyclingAlert'
然后在您的项目中的任何位置运行以下函数手动开始注入
void Inject_DWURecyclingAlert();
您的项目可能恰好在这里和那里使用了很多 [UIColor redColor]
。或者,也许您想用团队的第一语言本地化毫秒警告字符串。查看 UI 配置 部分,并按您喜欢的样子进行自定义。
方法交换和关联对象。您可以随时阅读 源代码。
DWURecyclingAlert.m 需要DEBUG宏来编译和运行。因此,默认情况下它在发布中是禁用的。如果您还希望在调试构建中禁用它,请注释掉文件顶部的 DWURecyclingAlertEnabled 宏。
drawRect:
的子视图是完全正常的,如果这种情况出现,DWURecyclingAlert.m 将会计算遍历每一个 drawRect:
调用所需要的时间总和。在这个版本库中您可以找到RecyclingAlert的示例项目。
DWURecyclingAlert是在MIT许可证下发布的。有关详细信息,请参阅LICENSE。
1: Facebook AsyncDisplayKit指南。(http://asyncdisplaykit.org/guide)