[iOS] sdk 0.28.0 版本的项目在iOS 14 beta系统中运行,图片无法显示
sdk 0.28.0 版本的项目在iOS 14 beta系统中运行,图片无法加载出来。
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
- (void)updateContentImageWithFailedBlock:(void(^)(NSString *, NSError *))downloadFailedBlock方法中
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 上可以了,谢谢