开发笔记,优化TableView 0.00001

聊天流显示性能提高

前言:徽章是一个自定义view,生成相关的model后,赋值给view,然后把view放入YYLabel中,最后在Tableview展示。

之前做法是徽章是一个自定义view,这个view 上有五六个子view,

比如叫 PTVFansBadgeItemView生成这个view后,赋值 model

PTVFansBadgeItemView *itemView = [[PTVFansBadgeItemView alloc] initWithFrame:CGRectMake(0, 0, sizeTemp.width, sizeTemp.height)];
        itemView.shouldInSmall = YES;
        itemView.badgeItem = itemInfo;

然后把这个view加入到YYLabel中。(使用 yy_attachmentStringWithContent)把itemView加入YYLabel. 测试一下极限方案,每个cell 中生成几十个这种view,会有卡顿现象。猜测是布局各种相关的,因为YYLabel中自定义view只能在主线程中添加到相关位置上。

优化:

 PTVFansBadgeItemView *itemView = [[PTVFansBadgeItemView alloc] initWithFrame:CGRectMake(0, 0, sizeTemp.width, sizeTemp.height)];
        itemView.shouldInSmall = YES;
        itemView.badgeItem = itemInfo;
        
        UIImage *image = [itemView re_screenshot];

使用截图方法,对自定义view进行截图,生成一个image, 然后把这个image加入到YYLabel中。

这里 re_screenshot 方法是一个分类,作用就是给UIView截图,就不贴代码了,YYKit 中 UIView 的分类有更完美的实现。

很多地方都可以使用截图集中渲染方法提高性能。可以多尝试

你可能感兴趣的:(开发笔记,优化TableView 0.00001)