2013-10-22 61 views
4

我有我的應用程序的教程,它應該只顯示第一次打開應用程序,應該點擊忽略。如何在視圖中的任何位置檢測水龍頭?

我初始化UITapGestureRecognizer在我viewDidLoad中:

tapper_tut = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
tapper_tut.cancelsTouchesInView = FALSE; 
[self.view addGestureRecognizer:tapper_tut]; 

和我有一個IBAction爲檢測自來水,並設置教程隱藏:

- (IBAction)dismiss_tut{ 
    if (????????????????) { 
     _tutorial.hidden = YES; 
    } 
} 

但我不知道該怎麼放入if語句條件,或者如果這是正確的方式去做這件事。

如何解除水龍頭上的UIImageView?

+0

爲什麼你要'if'語句? –

回答

11
UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
[self.view addGestureRecognizer:gr]; 
// if not using ARC, you should [gr release]; 
// mySensitiveRect coords are in the coordinate system of self.view 


- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer { 
    CGPoint p = [gestureRecognizer locationInView:self.view]; 
    if (CGRectContainsPoint(mySensitiveRect, p)) { 
     NSLog(@"got a tap in the region i care about"); 
    } else { 
     NSLog(@"got a tap, but not where i need it"); 
    } 
} 
2

必須聲明的.h文件作爲「UIGestureRecognizerDelegate」

你獲得的手勢自來水作爲雙向下面的步驟給出。

1)GestureRecognizer的呼叫委託方法(沒有給出動作)

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:nil]; // not given action. 
recognizer.numberOfTouchesRequired=1;// here how many tap you want set it 
[self.view addGestureRecognizer:recognizer]; 
recognizer.delegate = self; 

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 
    //whatever you want write code here 
    return NO; 
    } 

2)給定的動作

UITapGestureRecognizer *oneTouch=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(Addphoto)]; 
[oneTouch setNumberOfTouchesRequired:1]; 
[self.view addGestureRecognizer:oneTouch]; 

-(IBAction)Addphoto 
{ 
    //whatever you want write code here 
} 

可以是它將幫助。

3

您可以viewDidLoad中這樣

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     self.view.backgroundColor = [UIColor whiteColor]; 

     /* Create the Tap Gesture Recognizer */ 
     self.tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self 
            action:@selector(handleTaps:)]; 

    /* The number of fingers that must be on the screen */ 
     self.tapGestureRecognizer.numberOfTouchesRequired = 1; 

    /* The total number of taps to be performed before the gesture is recognized */ 
     self.tapGestureRecognizer.numberOfTapsRequired = 1; 

    /* Add this gesture recognizer to the view */ 
    [self.view addGestureRecognizer:self.tapGestureRecognizer]; 
    } 

要檢測的水龍頭,你可以作出這樣的方法。

- (void) handleTaps:(UITapGestureRecognizer*)paramSender 
    { 
     NSUInteger touchCounter = 0; 
     for (touchCounter = 0;touchCounter < paramSender.numberOfTouchesRequired;touchCounter++) 
     { 
      CGPoint touchPoint =[paramSender locationOfTouch:touchCounter inView:paramSender.view]; 
      NSLog(@"Touch #%lu: %@",(unsigned long)touchCounter+1, NSStringFromCGPoint(touchPoint)); 
     } 
    } 
0

我覺得你要在第一時間檢測推出其中U可以用以下

做應用程序的[[NSUserDefaults的standardUserDefaults] boolForKey:@ 「HasLaunchedOnce」]!

在將這個你的if語句。

+0

你讀過這個問題了嗎? OP正在詢問_「如何解開水龍頭上的UIImageView?」。 – Amar

+0

Amar是對的。我已經有了這個。 – ZuluDeltaNiner

+0

我想他已經寫了一些東西來隱藏教程(_tutorial.hidden = YES),他問了什麼是關於如何在if語句 – Amulya

相關問題