This is an automated email from the ASF dual-hosted git repository. cxfeng pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push: new b335bd6 [iOS]sometime image size is so big when loading image (#1795) b335bd6 is described below commit b335bd6844027c7b17bb6522d2aaee6524100c5a Author: jianhan-he <41508406+jianhan...@users.noreply.github.com> AuthorDate: Thu Nov 22 16:09:49 2018 +0800 [iOS]sometime image size is so big when loading image (#1795) --- ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m index 0c98098..ab4f63c 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m +++ b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m @@ -56,6 +56,7 @@ static dispatch_queue_t WXImageUpdateQueue; NSString * _imageSrc; pthread_mutex_t _imageSrcMutex; pthread_mutexattr_t _propertMutexAttr; + BOOL _shouldUpdateImage; } @property (atomic, strong) NSString *placeholdSrc; @@ -80,6 +81,7 @@ WX_EXPORT_METHOD(@selector(save:)) - (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance { if (self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance]) { + _shouldUpdateImage = NO; _async = YES; if (!WXImageUpdateQueue) { WXImageUpdateQueue = dispatch_queue_create("com.taobao.weex.ImageUpdateQueue", DISPATCH_QUEUE_SERIAL); @@ -382,8 +384,21 @@ WX_EXPORT_METHOD(@selector(save:)) [self updateImage]; } +- (void)layoutDidFinish +{ + [super layoutDidFinish]; + if (_shouldUpdateImage) { + [self updateImage]; + _shouldUpdateImage = NO; + } +} + - (void)updateImage { + if (CGSizeEqualToSize(_view.frame.size, CGSizeZero)) { + _shouldUpdateImage = YES; + return; + } __weak typeof(self) weakSelf = self; if (_downloadImageWithURL && [[self imageLoader] respondsToSelector:@selector(setImageViewWithURL:url:placeholderImage:options:progress:completed:)]) { NSString *newURL = nil; @@ -600,6 +615,7 @@ WX_EXPORT_METHOD(@selector(save:)) if ([[self imageLoader] respondsToSelector:@selector(cancelCurrentImageLoad:)]) { [[self imageLoader] cancelCurrentImageLoad:(UIImageView*)_view]; } + _shouldUpdateImage = NO; [_imageOperation cancel]; _imageOperation = nil; [_placeholderOperation cancel];