ㄷㅣㅆㅣ's Amusement

[iOS/Objective-c] UIButton background color 설정하기. 본문

Programming/iOS

[iOS/Objective-c] UIButton background color 설정하기.

ㄷㅣㅆㅣ 2015. 11. 30. 14:19

[iOS/Objective-c] UIButton background color 설정하기.

반응형

iOS에서 UIButton으로 작업하다보면 UIControlState에 따라 bacground color도 변경해야 할 때가 있는데, background image는 interface builder에서 변경 가능하지만 bg color는 그렇지 못하다.


따라서 bg clolor를 설정할 수 있는 category를 한개 더 만들어보도록 한다. (Objective-C 코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#import "UIButton+BgColor.h"
 
@implementation UIButton (BgColor)
- (void)setBgColor:(UIColor *)color forState:(UIControlState)state
{
    // 버튼 백그라운드 이미지를 채우기위한 더미 뷰.
    UIView *colorView = [[UIView alloc] initWithFrame:CGRectMake(0011)];
    colorView.backgroundColor = color;
    
    UIGraphicsBeginImageContext(colorView.bounds.size);
    [colorView.layer renderInContext:UIGraphicsGetCurrentContext()];
    
    // 컬러를 채운 이미지를 생성한다.
    UIImage *colorImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    // 생성된 이미지를 BG로 세팅.
    [self setBackgroundImage:colorImage forState:state];
}
@end
cs


헤더 파일이야 뭐... 말안해도 알겠지??

1
2
3
4
5
#import <UIKit/UIKit.h>
 
@interface UIButton (BgColor)
- (void)setBgColor:(UIColor *)color forState:(UIControlState)state;
@end
cs


이러면 UIButton 클릭했을 때 background color를 바꿀 수 있다.

1
2
3
4
- (void)viewDidLoad {
    [_yourBtn setBgColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [_yourBtn setBgColor:[UIColor redColor] forState:UIControlStateHighlighted];
}
cs


오늘도 간단간단!!

반응형
Comments