2

제스처 인식기를보기에 구현하고 다른 모든 UI 구성 요소로 전파 할 수 있습니까? 내가 그런 일을 할 경우 , 그것은 작동하지 않습니다제스처 인식기를 모든보기 구성 요소에 적용 하시겠습니까?

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
    swipe.direction = UISwipeGestureRecognizerDirectionRight; 

    [self.view addGestureRecognizer:swipe]; 
    [TitleLabel addGestureRecognizer:swipe]; 
    [DescLabel addGestureRecognizer:swipe]; 
    [_TopView addGestureRecognizer:swipe]; 
    [_BottomView addGestureRecognizer:swipe]; 
    [_ScrollView addGestureRecognizer:swipe]; 
    [_TableView addGestureRecognizer:swipe]; 

    [swipe release]; 

내가 그것을 어떻게 할 수 있습니까?

모든 개체를 다루는 내보기에 투명보기를 추가해야합니까? 아니면이를 수행하는 지능적인 방법이 있습니까?

답변

0

귀하의 연구 결과는 올바른 다시 다음과 같습니다 ... 여러 구성 요소에 동일한 인식하지만, 완성도를 위해서

NSInteger count = 1; 
NSInteger total = [[self.view subviews] count]; 
for (id obj in [self.view subviews]) 
{ 
    NSLog(@"testing object %i of %i", count, total); 
    count++; 

    if ([obj respondsToSelector:@selector(addGestureRecognizer:)]) 
    { 
     UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
     swipe.direction = UISwipeGestureRecognizerDirectionRight; 
     [obj addGestureRecognizer: swipe]; 
     [swipe release]; 
     NSLog(@"swipe added"); 
    } 
} 

나는 개체의 당신이 인식을 적용 할 경우입니다을 forsee 유일한 문제 ~은 이미 하위보기 인 self.view 인 추가보기에 포함됩니다. self.view 발견 된 하위보기가 클래스 유형 UIView인지 확인한 다음 해당보기의 하위보기 등을 반복하는 경우 확인해야합니다.

+0

네, 맞습니다. – elp

관련 문제