Files
comaps/iphone/Maps/Core/WebImage/UIImageView+WebImage.m
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

47 lines
1.5 KiB
Objective-C

#import "UIImageView+WebImage.h"
#import "MWMWebImage.h"
#import <objc/runtime.h>
static char kAssociatedObjectKey;
@implementation UIImageView (WebImage)
- (void)wi_setImageWithUrl:(NSURL *)url {
[self wi_setImageWithUrl:url transitionDuration:0 completion:nil];
}
- (void)wi_setImageWithUrl:(NSURL *)url
transitionDuration:(NSTimeInterval)duration
completion:(void (^)(UIImage *, NSError *))completion {
id<IMWMImageTask> task = [[MWMWebImage defaultWebImage] imageWithUrl:url
completion:^(UIImage *image, NSError *error) {
objc_setAssociatedObject(self, &kAssociatedObjectKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
if (!image) {
if (completion) { completion(nil, error); }
return;
}
if (duration > 0) {
[UIView transitionWithView:self
duration:duration
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{ self.image = image; }
completion:nil];
} else {
self.image = image;
}
if (completion) { completion(image, nil); }
}];
objc_setAssociatedObject(self, &kAssociatedObjectKey, task, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (void)wi_cancelImageRequest {
id<IMWMImageTask> task = objc_getAssociatedObject(self, &kAssociatedObjectKey);
[task cancel];
objc_setAssociatedObject(self, &kAssociatedObjectKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end