2011-06-12 5 views

답변

44

을 대체 할 수 있습니다. touchesEnded:withEvent:을 무시하고 싶을 것입니다.

또는 UIButton을 사용하십시오.

11

기본적으로 UILabel은 터치 입력을 허용하도록 구성되지 않습니다. 그러나 UIButton을 대신 사용하여 사용자 정의 모양을 설정하면 (단일 행) 레이블처럼 보이게하고 터치 이벤트에 응답하게 할 수 있습니다.

- (void)someSetupMethod { 
    // ... 
    label.userInteractionEnabled = YES; 
    UITapGestureRecognizer *tapGesture = \ 
    [[UITapGestureRecognizer alloc] 
    initWithTarget:self action:@selector(didTapLabelWithGesture:)]; 
    [label addGestureRecognizer:tapGesture]; 
    [tapGesture release]; 
} 

- (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture { 
    // ... 
} 
+0

정말 쉽습니다! 감사! –

0

당신은 확실히 userinteractionenabled가 YES로 설정되어 있는지 확인해야합니다 다음은 touchesBegan:withEvent:

3

당신은 그것을 하위 클래스와 터치 메소드를 오버라이드 (override) : 당신은 제스처 인식기를 사용할 수

0

그냥 UILabel 클래스의 범주를 추가하고 여기에 메서드를 추가하십시오.