ㄷㅣㅆㅣ's Amusement
[iOS/Objective-c] UIButton background color 설정하기. 본문
[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(0, 0, 1, 1)]; 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 |
오늘도 간단간단!!
반응형
'Programming > iOS' 카테고리의 다른 글
[iOS/Objective-C] To run threads sequentialy or concurrently (0) | 2016.02.04 |
---|---|
[iOS/Objective-C] AES/CBC/NoPadding using CCCRypt (0) | 2015.12.16 |
[iOS/Objective-c] Touch Id 사용하여 인증하기. (passcode도 동작) (0) | 2015.11.25 |
[iOS/Objective-c]NSArray vs NSMutableArray 잘 사용하고 계신가요? (0) | 2015.11.19 |
iOS/Objective-c, code block 내에서 self 다루기 (2) | 2015.11.19 |
Comments