JLChen
2021-10-08 f8457b624a75bf8e41489b74f66009eee6891b8b
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//
//  Copyright © 2016 dahua. All rights reserved.
//
 
#import <LCBaseModule/UIButton+LeChange.h>
#import <LCBaseModule/DHPubDefine.h>
#import <LCBaseModule/UIColor+LeChange.h>
#import <LCBaseModule/UIFont+Dahua.h>
 
@implementation UIButton (LeChange)
 
+ (UIButton *)lc_buttomWithNormalImage:(UIImage *)normalImage
                          disableImage:(UIImage *)disableImage
                            hightImage:(UIImage *)highlightImage
{
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(0.0, 0.0, normalImage.size.width, normalImage.size.height);
    [btn setImage:normalImage forState:UIControlStateNormal];
 
    if (disableImage) {
        [btn setImage:disableImage forState:UIControlStateDisabled];
    }
 
    if (highlightImage) {
        [btn setImage:highlightImage forState:UIControlStateHighlighted];
    }
 
    return btn;
}
 
//用状态图片初始化按钮 按钮大小与图片相等
+ (UIButton *)lc_buttomWithNormalImageName:(NSString *)normalImageName
                          disableImageName:(NSString *)disableImageName
                            hightImageName:(NSString *)hightImageName;
{
    return [UIButton lc_buttomWithNormalImage:[UIImage imageNamed:normalImageName]
                                 disableImage:[UIImage imageNamed:disableImageName]
                                   hightImage:[UIImage imageNamed:hightImageName]];
}
 
+ (UIButton *)lc_buttonWithImage:(UIImage *)image
{
    return [UIButton lc_buttomWithNormalImage:image
                                 disableImage:nil
                                   hightImage:nil];
}
 
+ (UIButton *)lc_buttonWithImageName:(NSString *)imageName
{
    return [UIButton lc_buttonWithImage:[UIImage imageNamed:imageName]];
}
 
- (void)lc_changeStyleWithTitle:(NSString *)title image:(NSString *)imageName target:(id)target action:(SEL)action
{
    [self removeTarget:target action:NULL forControlEvents:UIControlEventTouchUpInside];
    [self addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    [self setTitleColor:[UIColor dhcolor_c0] forState:UIControlStateNormal];
    [self setTitleColor:[UIColor dhcolor_c6] forState:UIControlStateDisabled];
    self.titleLabel.font = [UIFont dhFont_t4];
    [self setTitle:title forState:UIControlStateNormal];
 
    if (imageName.length) {
        UIImage *image = DH_IMAGENAMED(imageName);
        [self setImage:image forState:UIControlStateNormal];
    } else {
        [self setImage:nil forState:UIControlStateNormal];
    }
}
 
- (void)lc_changeStyleWithTitle:(NSString *)title textColor:(UIColor *)textColor target:(id)target action:(SEL)action
{
    [self removeTarget:target action:NULL forControlEvents:UIControlEventTouchUpInside];
    [self addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    [self setTitleColor:textColor forState:UIControlStateNormal];
    self.titleLabel.font = [UIFont dhFont_t4];
    [self setTitle:title forState:UIControlStateNormal];
 
    [self setImage:nil forState:UIControlStateNormal];
}
 
- (void)setUIButtonImageUpWithTitleDownUI
{
    float spacing = 5; //图片和文字的上下间距
    CGSize imageSize = self.imageView.frame.size;
    CGSize titleSize = self.titleLabel.frame.size;
    CGSize textSize = [self.titleLabel.text sizeWithAttributes:@{ NSFontAttributeName: self.titleLabel.font }];
    CGSize frameSize = CGSizeMake(ceilf(textSize.width), ceilf(textSize.height));
    if (titleSize.width + 0.5 < frameSize.width) {
        titleSize.width = frameSize.width;
    }
    CGFloat totalHeight = (imageSize.height + titleSize.height + spacing);
    self.imageEdgeInsets = UIEdgeInsetsMake(-(totalHeight - imageSize.height), 0.0, 0.0, -titleSize.width);
    self.titleEdgeInsets = UIEdgeInsetsMake(0, -imageSize.width - 5, -(totalHeight - titleSize.height), 0);
}
 
- (void)setUIButtonImageUpWithTitleDownUIWithSpace:(CGFloat)space {
    float spacing = space;     //图片和文字的上下间距
    CGSize imageSize = self.imageView.frame.size;
    CGSize titleSize = self.titleLabel.frame.size;
    CGSize textSize = [self.titleLabel.text sizeWithAttributes:@{ NSFontAttributeName: self.titleLabel.font }];
    CGSize frameSize = CGSizeMake(ceilf(textSize.width), ceilf(textSize.height));
    if (titleSize.width + 0.5 < frameSize.width) {
        titleSize.width = frameSize.width;
    }
    CGFloat totalHeight = (imageSize.height + titleSize.height + spacing);
    self.imageEdgeInsets = UIEdgeInsetsMake(-(totalHeight - imageSize.height), 0.0, 0.0, -titleSize.width);
    self.titleEdgeInsets = UIEdgeInsetsMake(0, -imageSize.width - 5, -(totalHeight - titleSize.height), 0);
}
 
- (void)setUIButtonImageRightWithTitleLeftUI
{
    [self setTitleEdgeInsets:UIEdgeInsetsMake(0, -self.imageView.frame.size.width - 5, 0, self.imageView.frame.size.width + 5)];
    [self setImageEdgeInsets:UIEdgeInsetsMake(0, self.titleLabel.bounds.size.width, 0, -self.titleLabel.bounds.size.width)];
}
 
- (void)setUIButtonImageLeftWithTitleRightUI
{
    [self setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, -10)];
}
 
- (void)resetEdgInset
{
    [self setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    [self setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
 
@end