Skip to content

Commit 84bcf0e

Browse files
author
jrapoport
committed
Support keyed images
Currently you can override image "foo" (foo.png) in Bundle A with foo.png in Bundle B. However, sometimes you need to override image "foo" (foo.png) in Bundle A with quack.png in Bundle B. Basically you want to request imageNamed: "Foo", but have the theme swap that out for "Quack" via the plist, and then try to find imageNamed: "Quack" instead.
1 parent dddad15 commit 84bcf0e

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

AWLThemeManager/AWLThemeManager.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
- (UIFont*)fontForKey:(NSString*)key;
2626
- (UIFont *)fontForKey:(NSString *)key forTheme:(NSString*)themeName;
2727

28+
//Get img name from defaults.plist, and then img from theme bundle
29+
- (UIImage *)imageforKey:(NSString *)key;
30+
- (UIImage *)imageforKey:(NSString *)key forTheme:(NSString*)themeName;
31+
2832
//Get img from theme bundle
2933
- (UIImage*)imageNamed:(NSString*)imgName;
3034
- (UIImage *)imageNamed:(NSString *)imgName forTheme:(NSString*)themeName;

AWLThemeManager/AWLThemeManager.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,22 @@ - (UIColor*)colorFromString:(NSString*)colorValue
118118
return nil;
119119
}
120120

121+
- (UIImage *)imageforKey:(NSString *)key
122+
{
123+
return [self imageforKey:key forTheme:self.currentTheme];;
124+
}
125+
126+
- (UIImage *)imageforKey:(NSString *)key forTheme:(NSString*)themeName
127+
{
128+
if ([self isValidString:themeName] == NO || [self isValidString:key] == NO) {
129+
return nil;
130+
}
131+
132+
NSString *imageName = [self objectForKey:key forTheme:themeName];
133+
134+
return [self imageNamed:imageName forTheme:themeName];
135+
}
136+
121137
- (UIImage *)imageNamed:(NSString *)imgName
122138
{
123139
return [self imageNamed:imgName forTheme:self.currentTheme];;

0 commit comments

Comments
 (0)