2014-04-21 3 views
1

단일 이미지를 스캔 할 때 자동으로 비디오를 재생하도록하는 Augmented Reality 앱을 만들고 있습니다.iOS Simulate 단일 탭 제스처

현재 단일 탭 제스처 방법을 사용하여 비디오를 재생하려면 이미지의 버튼을 탭해야합니다.

- (void)handleTap:(UITapGestureRecognizer *)sender { 
    if (sender.state == UIGestureRecognizerStateEnded) { 
     // handling code 
     CGPoint touchPoint = [sender locationInView:eaglView]; 
     [eaglView handleTouchPoint:touchPoint]; 
    } 
} 

가 지금은 스캔 마무리와 비디오가

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test) name:@"singleTap" object:nil]; 

-(void)test 
{ 
    [self handleTap:nil]; 
} 

를 재생할 준비가 NSNotification를 사용하여 시뮬레이션 할하지만 nil을 보내 때문에 충돌 것, 내가 어떻게 sender.state을 보낼 않는다 handleTap 메서드는 sender.state=UIGestureRecognizerStateEnded이므로 기대합니다.

감사합니다.

답변

2

handleTap 메서드가 호출 될 때 UITapGestureRecognizer, 즉 이산 제스처의 상태를 테스트 할 필요가 없으며 상태 (UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded)가 하나만 있습니다.

- (void)handleTap:(UITapGestureRecognizer *)sender { 
    // handling code 
    CGPoint touchPoint = [sender locationInView:eaglView]; 
    [eaglView handleTouchPoint:touchPoint]; 
} 

을하고 시뮬레이션 :

그래서 당신은 이런 식으로 작업을 수행 할 수 있습니다

-(void)test 
{ 
    [self handleTap:nil]; 
} 
0

을 .H 파일에서 :

UITapGestureRecognizer *tapRecog;

을하고하는 .m 파일에 : in viewDidLoad : 다음

tapRecog = [UITapGestureRecognizer alloc] init]; 
[YourImage addObserver:self forKeyPath:@"singleTap" options:0 context:nil]; 
[YourImage addSubview:tapRecog]; 

과 :

-(void)test 
{ 
    [self handleTap:tapRecog]; 
} 
:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    if ([keyPath isEqualToString:@"singleTap"]) 
    { 
     [self test]; 
    } 
} 

다음 테스트 기능을 수정

관련 문제