41 lines
1.2 KiB
Objective-C
41 lines
1.2 KiB
Objective-C
//
|
|
// TUITheme+TUIPatch.m
|
|
// TreeHole
|
|
//
|
|
// Created by mambaxie on 2022/6/20.
|
|
//
|
|
|
|
#import "TUITheme+TUIPatch.h"
|
|
#import <JRSwizzle.h>
|
|
|
|
@implementation TUITheme (TUIPatch)
|
|
|
|
+ (void)load {
|
|
NSError *error;
|
|
[self jr_swizzleClassMethod:@selector(dynamicImage:module:defaultImage:) withClassMethod:@selector(patch_dynamicImage:module:defaultImage:) error:&error];
|
|
if (error) {
|
|
NSLog(@"patch TUI error: %@", error);
|
|
}
|
|
}
|
|
|
|
// 获取动态图片
|
|
+ (UIImage *__nullable)patch_dynamicImage:(NSString *)imageKey module:(TUIThemeModule)module defaultImage:(UIImage *)image {
|
|
TUITheme *darkTheme = TUIDarkTheme(module);
|
|
if (darkTheme) {
|
|
UIImage *imageInAsset = nil;
|
|
if ([darkTheme.manifest.allKeys containsObject:imageKey]) {
|
|
NSString *imageName = [darkTheme.manifest objectForKey:imageKey];
|
|
if ([imageName isKindOfClass:NSString.class]) {
|
|
imageInAsset = ImageNamed([imageName stringByDeletingPathExtension]);
|
|
}
|
|
}
|
|
if (imageInAsset) {
|
|
return imageInAsset;
|
|
}
|
|
}
|
|
// 兜底
|
|
return [self patch_dynamicImage:imageKey module:module defaultImage:image];
|
|
}
|
|
|
|
@end
|