2012-09-24 2 views
0

DCRoundSwitch를 사용하여 사용자 지정 스위치를 만들었습니다. 문제는 UIControlEventTouchUpInside 이벤트를 호출 할 수 없지만 UIControlEventValueChanged 이벤트 만 호출됩니다. 사전에DCRoundSwitch UIControlEventTouchUpInside 이벤트를 호출 할 수 없습니다.

self.swtchDailyReminder.on = YES; 
self.swtchDailyReminder.onTintColor =[UIColor colorWithRed:47.0/255.0 green:160.0/255.0 
blue:158.0/255.0 alpha:1.0]; 
[self.swtchDailyReminder addTarget:self action:@selector(switchDailyReminderToggled:) 
forControlEvents:UIControlEventTouchUpInside]; 

감사 :

다음은 내가있는 viewDidLoad로 작성된 코드입니다.

답변

0

UIControlEventTouchUpInside 메시지는 DCRoundSwitchtouchesEnded 방법으로 전송됩니다. 따라서 스위치가 메시지를 수신하여 조치를 트리거하려면이 메소드를 호출해야합니다. touchesCancelled이 (가) UIGestureRecognizer에 의해 전송되므로 이러한 현상이 발생하지 않습니다. 제스처를 인식하면 다른보기로 자동으로 취소됩니다. 스위치 UIGestureRecognizer이 생성되어 스위치 DCRoundSwitch의 설정 방법 인 cancelsTouchesInView 속성을 사용하여이 동작을 해제하면 touchesEnded가 스위치에 UIControlEventTouchUpInside 메시지를 보내어 동작을 트리거 할 수 있습니다 .

희망이 도움이됩니다.

// 참고 : 대상 동작에서 일부 애니메이션을 실행하려면 애니메이션을 막지 못하도록 DCRoundSwitch을 추가로 변경해야합니다. 자세한 내용은 this SO answer을 참조하십시오.

관련 문제