2011-10-26 2 views
8

내 응용 프로그램에 대한 사용자 지정 UIButton (UIButton 하위 클래스)을 만들었습니다. 이 버튼의 구현 내에서 배경색을 눌렀을 때 어떻게 변경합니까? 내가 self.selectedself.highlighted 확인 drawRect: (에 분기 시도사용자 지정 UIButton을 눌렀을 때 감지

을 (가. 나는 현재 그라데이션 배경을 그려 코어 그래픽을 사용하고 우울 일반 배경의에이. 복귀한다)하지만,하지 않을 drawRect 때문에 변화가 발생하지 않는다 터치 이벤트에했다.

어떤 제안이나 코드 샘플을 부탁드립니다.

답변

15

터치 이벤트 [self setNeedsRedraw]를 호출하려고합니다.


Asker는이 답변과 아래의 의견을 바탕으로 해결책을 제시했습니다.

솔루션 사용

: 선택기가 배경 변경을 수행하는 사용자 정의 함수입니다

[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown]; 
[self addTarget:self action:@selector(buttonDepressed) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel]; 

.

+0

배경색을 설정하기 위해 버튼 구현 내에서이 터치 이벤트를 캡처해야합니다. –

+2

언제든지 자신의 터치 이벤트에 자신을 청취자로 추가 할 수 있습니다. 시도해보십시오 [self addTarget : 자기 동작 : @selector (setNeedsRedraw) forControlEvents : UIControlEventTouchDown]; ' –

+1

고맙습니다. 'self'에'addTarget'을 사용하면 효과가있었습니다. 귀하의 답변에 실제 솔루션을 추가했습니다. –

관련 문제