2010-01-13 6 views
15

저는 6 개의 세그먼트가있는 UISegmentedControl을 가지고 있습니다. 값이 변할 때 메서드를 호출하기를 원하지만 각 세그먼트가 UIControlEventTouchDragIn 일 때 UILabel에 이름이 나타나기를 원하기 때문에 호출해야합니다. 사람이 그것에 무언가를 선택하려고하고 손가락을 컨트롤을 가로 질러 끌고 있지만, 세그먼트 화 된 컨트롤은 내가 물건으로 끌고 갈 때에도이 호출을 감지하지 못합니다. 도와주세요. 어쩌면 드래그 할 때 메서드를 호출하는 컨트롤 위에 UIButton을 만들어야하지만 탭을받을 때 값이 변경된 메서드를 호출해야합니다.UISegmentedControl 대리자/터치 이벤트

답변

-6

UISegmentedControl을 서브 클래스 화하고 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { return; } 메서드를 재정 의하여 터치의 드래그 및 위치를 관리 할 수 ​​있습니다.

어쨌든 드래그가 어느 세그먼트에 있는지 알 수 없으므로 터치로 모든 것을 수동으로 수행하고 해당 기능을 사용하여 추적하는 것이 좋습니다.

+1

나는 이것을 쉽게하기를 바란다. 정말로 나는해라! – Jaba

33

은 어쩌면 내가 제대로 질문을 이해하지 않습니다하지만 당신은 그냥 사용할 수 없습니다 :

[segmentedControl addTarget:self 
     action:@selector(action:) 
     forControlEvents:UIControlEventValueChanged]; 

을 그냥 UIControlEventTouchDragIn에 의해을 UIControlEventValueChanged 교체? 그런 다음 액션 메소드에서 UILabel의 텍스트를 변경하는 등의 작업을 수행해야합니다.

나는 한 무리의 셀과 각 셀의 UISegmentedControll이있는 UITAbleView를 가지고 있으며 잘 작동한다.

UISegmentedControl에 대한 설명서는 온라인에서 볼 수 없지만 XCode의 Organizer에서 볼 수 있으며 위 코드가 첫 번째 예입니다.

관련 문제