blob: 8fc208b29570ea549ba1e720e6e0a781004312c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
#import <objc/runtime.h>
#import "Macros.h"
#import "UIButton+RuntimeAttributes.h"
#import "UIColor+MapsMeColor.h"
#import "UIFont+MapsMeFonts.h"
@implementation UIButton (RuntimeAttributes)
- (void)setLocalizedText:(NSString *)localizedText
{
[self setTitle:L(localizedText) forState:UIControlStateNormal];
[self setTitle:L(localizedText) forState:UIControlStateDisabled];
}
- (NSString *)localizedText { return L([self titleForState:UIControlStateNormal]); }
- (void)setFontName:(NSString *)fontName { self.titleLabel.font = [UIFont fontWithName:fontName]; }
- (void)setTextColorName:(NSString *)colorName
{
[self setTitleColor:[UIColor colorWithName:colorName] forState:UIControlStateNormal];
}
- (void)setTextColorHighlightedName:(NSString *)colorName
{
[self setTitleColor:[UIColor colorWithName:colorName] forState:UIControlStateHighlighted];
}
- (void)setTextColorDisabledName:(NSString *)colorName
{
[self setTitleColor:[UIColor colorWithName:colorName] forState:UIControlStateDisabled];
}
- (void)setTextColorSelectedName:(NSString *)colorName
{
[self setTitleColor:[UIColor colorWithName:colorName] forState:UIControlStateSelected];
}
- (void)setBackgroundColorName:(NSString *)colorName
{
objc_setAssociatedObject(self, @selector(backgroundColorName), colorName,
OBJC_ASSOCIATION_COPY_NONATOMIC);
[self setBackgroundColor:[UIColor colorWithName:colorName] forState:UIControlStateNormal];
}
- (NSString *)backgroundColorName
{
return objc_getAssociatedObject(self, @selector(backgroundColorName));
}
- (void)setBackgroundHighlightedColorName:(NSString *)colorName
{
objc_setAssociatedObject(self, @selector(backgroundHighlightedColorName), colorName,
OBJC_ASSOCIATION_COPY_NONATOMIC);
[self setBackgroundColor:[UIColor colorWithName:colorName] forState:UIControlStateHighlighted];
}
- (NSString *)backgroundHighlightedColorName
{
return objc_getAssociatedObject(self, @selector(backgroundHighlightedColorName));
}
- (void)setBackgroundSelectedColorName:(NSString *)colorName
{
objc_setAssociatedObject(self, @selector(backgroundSelectedColorName), colorName,
OBJC_ASSOCIATION_COPY_NONATOMIC);
[self setBackgroundColor:[UIColor colorWithName:colorName] forState:UIControlStateSelected];
}
- (NSString *)backgroundSelectedColorName
{
return objc_getAssociatedObject(self, @selector(backgroundSelectedColorName));
}
- (void)setBackgroundColor:(UIColor *)color forState:(UIControlState)state
{
[self setBackgroundColor:[UIColor clearColor]];
[self setBackgroundImage:[UIImage imageWithColor:color] forState:state];
}
@end
|