江汉网站建设,广州技术支持:奇亿网站建设,joomla与wordpress,建设网站的技术难点业务场景#xff0c;之前是直接将当前的collectionview截长屏操作#xff0c;第一次截图会出现黑色部分原因是视图未完全布局#xff0c;原因是第一次使用了Masonry约束然后再截图的时候进行了frame赋值#xff0c;可以查看下Masonry约束和frame的冲突#xff0c;全部修改…业务场景之前是直接将当前的collectionview截长屏操作第一次截图会出现黑色部分原因是视图未完全布局原因是第一次使用了Masonry约束然后再截图的时候进行了frame赋值可以查看下Masonry约束和frame的冲突全部修改成Masonry约束之后解决,现在一切都正常.
突然产品来了个需求,就是要把一些不需要的元素过滤掉因此我修改了数据源之后reloadData然后重新截图这个时候出现了异常
图片上可以很明显看得出来左右两边会有一个白色的尖角出来但是视图展示正常看起来像是一个圆角然后我怀疑是某个图层出了问题然后就把所有元素都设置了不一样的背景色但是结果发现这个白色位置和颜色并没有发生任何改变中间怀疑是 layerCornerradius导致的所以等刷新之后再切圆角偶然就好了但是并没有彻底好此处可以确定为layer层导致然后就一直集中在layer的圆角解决方案上来后面自己画了一个layer最后发现根本无法解决然后我打算换一个思路解决既然是layer层的问题我就改变截图方式我查看了之前的方式是根据- (void)renderInContext:(CGContextRef)ctx;这个处理的就是layer层然后我修改为- (BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates方式后解决可以判断的是因为圆角导致了离屏渲染从而layer层的截图出现了问题到此一切解决