배경 이미지를 사용하여 버튼의 터치 전/후 모습을 만드는 예제입니다. 간단하게 다음의 소스를 보시죠.
[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
// 버튼에 사용할 이미지를 읽어들인다
UIImage *normalImage = [UIImage imageNamed:@”test_btn_01.png”];
UIImage *touchImage = [UIImage imageNamed:@”test_btn_02.png”];
// 버튼 생성
CGRect buttonRect = CGRectMake(30.0f, 50.0f, 83.0f, 23.0f);
UIButton *button = [[UIButton alloc] initWithFrame:buttonRect];
// 버튼의 배경 이미지 설정
[button setBackgroundImage:normalImage forState:UIControlStateNormal];
[button setBackgroundImage:touchImage forState:UIControlStateHighlighted];
// 버튼의 문자 설정
[button setTitle:@”Click Me” forState:UIControlStateNormal];
[button setTitle:@”Thanks” forState:UIControlStateHighlighted];
[button setFont:[UIFont boldSystemFontOfSize:12.0f]];
// 버튼을 window에 붙인다
[window addSubview:button];
[button release];
// 버튼의 투명영역이 제대로 적용되었는지 확인을 위해 배경색을 회색으로 변경
[window setBackgroundColor:[UIColor grayColor]];
[window makeKeyAndVisible];
}[/code]
forState를 보시면 아시겠지만 일반상태는 UIControlStateNormal이고 눌렸을때의 상태는 UIControlStateHighlighted입니다.
버튼의 모서리 부분이 투명처리 된 PNG를 사용했습니다, 예제를 통해 별다른 처리 없이 투명처리가 잘 되는 것을 알 수 있습니다.
바로 실행해 볼 수 있는 소스를 그냥 첨부하였습니다.
1381365972.zip