cdts/xdts-ios 3/TreeHole/Code/Features/Chat/UIPatch/TUITheme+TUIPatch.m
2023-07-27 09:20:00 +08:00

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