mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-27 19:25:11 +08:00
Add partial image loading to RCTImageView
Reviewed By: javache Differential Revision: D3856918 fbshipit-source-id: ca98f8604213e7e583a188ccc4c25ea9d7aa9aa2
This commit is contained in:
committed by
Facebook Github Bot 0
parent
048449b678
commit
820b1c0e46
@@ -229,6 +229,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
clipped:YES
|
||||
resizeMode:RCTResizeModeStretch
|
||||
progressBlock:nil
|
||||
partialLoadBlock:nil
|
||||
completionBlock:callback];
|
||||
}
|
||||
|
||||
@@ -292,6 +293,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
scale:(CGFloat)scale
|
||||
resizeMode:(RCTResizeMode)resizeMode
|
||||
progressBlock:(RCTImageLoaderProgressBlock)progressHandler
|
||||
partialLoadBlock:(RCTImageLoaderPartialLoadBlock)partialLoadHandler
|
||||
completionBlock:(void (^)(NSError *error, id imageOrData, BOOL cacheResult, NSString *fetchDate))completionBlock
|
||||
{
|
||||
{
|
||||
@@ -343,6 +345,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
scale:scale
|
||||
resizeMode:resizeMode
|
||||
progressHandler:progressHandler
|
||||
partialLoadHandler:partialLoadHandler
|
||||
completionHandler:^(NSError *error, UIImage *image){
|
||||
completionHandler(error, image, nil);
|
||||
}];
|
||||
@@ -366,6 +369,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
scale:scale
|
||||
resizeMode:resizeMode
|
||||
progressHandler:progressHandler
|
||||
partialLoadHandler:partialLoadHandler
|
||||
completionHandler:^(NSError *error, UIImage *image) {
|
||||
completionHandler(error, image, nil);
|
||||
}];
|
||||
@@ -469,7 +473,11 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
});
|
||||
}];
|
||||
|
||||
task.downloadProgressBlock = progressHandler;
|
||||
task.downloadProgressBlock = ^(int64_t progress, int64_t total) {
|
||||
if (progressHandler) {
|
||||
progressHandler(progress, total);
|
||||
}
|
||||
};
|
||||
|
||||
if (task) {
|
||||
if (!_pendingTasks) {
|
||||
@@ -491,6 +499,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
clipped:(BOOL)clipped
|
||||
resizeMode:(RCTResizeMode)resizeMode
|
||||
progressBlock:(RCTImageLoaderProgressBlock)progressBlock
|
||||
partialLoadBlock:(RCTImageLoaderPartialLoadBlock)partialLoadBlock
|
||||
completionBlock:(RCTImageLoaderCompletionBlock)completionBlock
|
||||
{
|
||||
__block volatile uint32_t cancelled = 0;
|
||||
@@ -557,6 +566,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
scale:scale
|
||||
resizeMode:resizeMode
|
||||
progressBlock:progressBlock
|
||||
partialLoadBlock:partialLoadBlock
|
||||
completionBlock:completionHandler];
|
||||
return cancellationBlock;
|
||||
}
|
||||
@@ -693,6 +703,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image,
|
||||
scale:1
|
||||
resizeMode:RCTResizeModeStretch
|
||||
progressBlock:NULL
|
||||
partialLoadBlock:NULL
|
||||
completionBlock:completion];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user