incubator-weex icon indicating copy to clipboard operation
incubator-weex copied to clipboard

[iOS] sdk 0.28.0 版本的项目在iOS 14 beta系统中运行,图片无法显示

Open lz156 opened this issue 5 years ago • 11 comments

sdk 0.28.0 版本的项目在iOS 14 beta系统中运行,图片无法加载出来。

lz156 avatar Sep 04 '20 07:09 lz156

same problem, and if the app compiled by xcode 12 beta, all images will not show.

imatrixme avatar Sep 10 '20 09:09 imatrixme

一样,今天刚升级就出现这种问题

yecoco avatar Sep 17 '20 06:09 yecoco

Xcode Version 12.0 (12A7209) 今天升级的release版本,图片也是出不来。

经过测试发现Xcode11和12在给imageview.image赋值时layer.contents表现不同。

WXImageComponent.m

  • (void)updateContentImageWithFailedBlock:(void(^)(NSString *, NSError *))downloadFailedBlock方法中

Xcode11 layer.contents值不为空 image

Xcode12 layer.contents值为空 image

((UIImageView *)strongSelf.view).image = image; 修改为strongSelf.view.layer.contents = (__bridge id _Nullable)(image.CGImage);图片即可显示

详细原因探索中。。。

dudwchina avatar Sep 18 '20 08:09 dudwchina

sdk 0.28.0 版本的项目用Xcode Version 12.0编译,在iOS 14 正式版系统中运行,图片无法加载出来。

wxh6520 avatar Sep 21 '20 02:09 wxh6520

原因可能是在iOS14中,如果自定义了imageView的layer渲染,需要手动设置layer.contents,不会在设置了image后进行同步contents

image

在weex中,imageView组件除非设置了compositing,才进入layer层并重新渲染,否则仍旧以image为主

image

我的临时方案是设置image后主动同步layer.contents

image

if (image) { self.layer.contents = (id)image.CGImage; } else { self.layer.contents = nil; }

JianYeee avatar Sep 22 '20 08:09 JianYeee

原因可能是在iOS14中,如果自定义了imageView的layer渲染,需要手动设置layer.contents,不会在设置了image后进行同步contents

image

在weex中,imageView组件除非设置了compositing,才进入layer层并重新渲染,否则仍旧以image为主

image

我的临时方案是设置image后主动同步layer.contents

image

if (image) { self.layer.contents = (id)image.CGImage; } else { self.layer.contents = nil; }

测试iOS12.4.8 会出现部分加载不显示

xztl avatar Sep 24 '20 15:09 xztl

针对iOS14系统,即Xcode12运行后,图片不显示,我是这样解决的 但是不太知道会不会有其他影响。 ACFD29AA-7B03-4FA4-9012-F6D155278B6B

WXLayer.m文件

  • (void)display { if (@available(iOS 14.0, *)) { [super display]; }

    [self.wx_component _willDisplayLayer:self]; }

Su1001 avatar Sep 25 '20 08:09 Su1001

https://github.com/apache/incubator-weex/pull/3276/

this pr has already resolve this issue.

jianhan-he avatar Sep 25 '20 09:09 jianhan-he

mark

y500 avatar Sep 29 '20 09:09 y500

最近我们release一个新版本,这个问题你们可以暂时先使用源码依赖去解决

jianhan-he avatar Nov 20 '20 03:11 jianhan-he

原因可能是在iOS14中,如果自定义了imageView的layer渲染,需要手动设置layer.contents,不会在设置了image后进行同步contents

image

在weex中,imageView组件除非设置了compositing,才进入layer层并重新渲染,否则仍旧以image为主

image

我的临时方案是设置image后主动同步layer.contents

image

if (image) { self.layer.contents = (id)image.CGImage; } else { self.layer.contents = nil; }

Xcode 12.2 上可以了,谢谢

foermo4-hao avatar Dec 07 '20 10:12 foermo4-hao