Open lz156 opened 4 years ago
same problem, and if the app compiled by xcode 12 beta, all images will not show.
一样,今天刚升级就出现这种问题
Xcode Version 12.0 (12A7209) 今天升级的release版本,图片也是出不来。
经过测试发现Xcode11和12在给imageview.image赋值时layer.contents表现不同。
WXImageComponent.m
Xcode11
layer.contents值不为空
Xcode12
layer.contents值为空
将((UIImageView *)strongSelf.view).image = image;
修改为strongSelf.view.layer.contents = (__bridge id _Nullable)(image.CGImage);
图片即可显示
详细原因探索中。。。
sdk 0.28.0 版本的项目用Xcode Version 12.0编译,在iOS 14 正式版系统中运行,图片无法加载出来。
原因可能是在iOS14中,如果自定义了imageView的layer渲染,需要手动设置layer.contents,不会在设置了image后进行同步contents
在weex中,imageView组件除非设置了compositing,才进入layer层并重新渲染,否则仍旧以image为主
我的临时方案是设置image后主动同步layer.contents
if (image) { self.layer.contents = (id)image.CGImage; } else { self.layer.contents = nil; }
原因可能是在iOS14中,如果自定义了imageView的layer渲染,需要手动设置layer.contents,不会在设置了image后进行同步contents
在weex中,imageView组件除非设置了compositing,才进入layer层并重新渲染,否则仍旧以image为主
我的临时方案是设置image后主动同步layer.contents
if (image) { self.layer.contents = (id)image.CGImage; } else { self.layer.contents = nil; }
测试iOS12.4.8 会出现部分加载不显示
针对iOS14系统,即Xcode12运行后,图片不显示,我是这样解决的 但是不太知道会不会有其他影响。
WXLayer.m文件
(void)display { if (@available(iOS 14.0, *)) { [super display]; }
[self.wx_component _willDisplayLayer:self]; }
https://github.com/apache/incubator-weex/pull/3276/
this pr has already resolve this issue.
mark
最近我们release一个新版本,这个问题你们可以暂时先使用源码依赖去解决
原因可能是在iOS14中,如果自定义了imageView的layer渲染,需要手动设置layer.contents,不会在设置了image后进行同步contents
在weex中,imageView组件除非设置了compositing,才进入layer层并重新渲染,否则仍旧以image为主
我的临时方案是设置image后主动同步layer.contents
if (image) { self.layer.contents = (id)image.CGImage; } else { self.layer.contents = nil; }
Xcode 12.2 上可以了,谢谢
sdk 0.28.0 版本的项目在iOS 14 beta系统中运行,图片无法加载出来。