聊天流顯示性能提高
前言:徽章是一個自定義view,生成相關(guān)的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加入到Y(jié)YLabel中。(使用 yy_attachmentStringWithContent
)把itemView
加入YYLabel. 測試一下極限方案万牺,每個cell 中生成幾十個這種view,會有卡頓現(xiàn)象纵竖。猜測是布局各種相關(guān)的杏愤,因為YYLabel中自定義view只能在主線程中添加到相關(guān)位置上靡砌。
優(yōu)化:
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加入到Y(jié)YLabel中通殃。
這里 re_screenshot
方法是一個分類,作用就是給UIView截圖厕宗,就不貼代碼了画舌,YYKit 中 UIView 的分類有更完美的實現(xiàn)。
很多地方都可以使用截圖集中渲染方法提高性能已慢∏簦可以多嘗試