LookinServer
LookinServer copied to clipboard
更新SDK至1.0.4后渲染出现问题
有一个比较复杂的界面,包含很多CAShapeLayer和View 更新以后就无法渲染出来,显示一片空白 回滚至1.0.3后一切正常
1.0.4 唯一的更改是对 view.frame 添加了校验逻辑https://github.com/QMUI/LookinServer/blob/master/Src/Server/Others/LKS_HierarchyDisplayItemsMaker.m#L53
根据你的描述,可能是校验逻辑不太对。
你可以升级到 1.0.4,然后在那个可以重现 bug 的界面刷新一下 Lookin,然后在你的 Xcode 控制台里使用“可能导致 Lookin 客户端中图像渲染错误”作为关键字过滤一下,然后看看能搜出什么日志?
LookinServer - 该 layer 的 frame({{6780492, 0}, {414, 896}}) 不太寻常,可能导致 Lookin 客户端中图像渲染错误,因此这里暂时将其视为 CGRectZero
确实找到了这么一条Log
这个界面用了比较复杂的嵌套,用了一些第三方的嵌套UI的库(JXPagingView)
应该是因为它初始化的时候给的X值过大导致cgRectIsUnreasonable
检验不过。。。
看起来有两种解决方法: 1)你从业务侧规避这个问题。毕竟即使不使用 Lookin,一个 view 的 origin 被设置为 6780492 这么大的数字通常应该是不合预期的 2)如果业务侧规避不了,并且你认为这个场景很重要,你可以把出问题的那个界面(显示一片空白)的 Lookin 文档导出来私信发给我(“文件”-“导出为文件”),我看看 Lookin 是否能有更好的办法处理这种异常场景。
我也是接手的别人的代码 仔细看了一下 是因为第三方库<FSPagerView> FSPagerViewCollectionView的NDStockDetailContainCell的X值
也有显示不了的情况
https://user-images.githubusercontent.com/10040131/145748660-4fca8dda-5241-4976-b984-73ed347f84ea.mov
升级到最新版本的 LookinServer 即可。