Browse Source

Prefer new imageWithTintColor API when tinting an UIImage (#5458)

With this change, dynamic colors will be supported when tinting an image and the image color will change on the fly depending on the dynamic provider and traits. This will be especially useful when supporting the new dark mode in iOS 13.
Danilo Bürger 5 years ago
parent
commit
5d751f643a
1 changed files with 5 additions and 0 deletions
  1. 5
    0
      lib/ios/UIImage+tint.m

+ 5
- 0
lib/ios/UIImage+tint.m View File

4
 
4
 
5
 - (UIImage *)withTintColor:(UIColor *)color {
5
 - (UIImage *)withTintColor:(UIColor *)color {
6
 	UIImage *newImage = [self imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
6
 	UIImage *newImage = [self imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
7
+#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
8
+	if (@available(iOS 13.0, *)) {
9
+		return [newImage imageWithTintColor:color];
10
+	}
11
+#endif
7
 	UIGraphicsBeginImageContextWithOptions(self.size, NO, newImage.scale);
12
 	UIGraphicsBeginImageContextWithOptions(self.size, NO, newImage.scale);
8
 	[color set];
13
 	[color set];
9
 	[newImage drawInRect:CGRectMake(0, 0, self.size.width, newImage.size.height)];
14
 	[newImage drawInRect:CGRectMake(0, 0, self.size.width, newImage.size.height)];