2015-04-23 101 views
2

所以我有一個主頁視圖,人們看到他們第一次啓動應用程序時,它有幾個不同的選項。昨天我添加了一個教程覆蓋,所以他們第一次打開應用程序時,我有一個0.5 alpha alpha視圖,並且在其他視圖上全屏顯示,此視圖具有白色文本和箭頭指向頁面上的函數。我在這個視圖中附加了一個輕擊手勢識別器,其操作是調用下一個教程屏幕(共3個)。後綴全部隱藏,應用程序正常運行。除了即使我的視圖是全屏,選中了用戶交互啓用和手勢點擊識別器之外,這一切都能正常工作,但子視圖上的手勢/觸摸仍然有效。所以如果我只是點擊應用程序上的一些空白區域,教程和點擊手勢按預期工作,循環瀏覽頁面等。但是,如果我不小心按子視圖按鈕或從子視圖做手勢,它會做的動作(帶你到一個新的一頁或w/e)Xcode iOS UIView允許在子視圖上輸入的點擊手勢

所以基本上,據我可以告訴我的觀點,儘管是另一個頂部,並有一個輕拍手勢識別器附加到視圖的子視圖仍然被按下,任何想法?

+0

禁用的手勢,因爲你加點觸手勢到你的主視圖它的所有子視圖都會得到這個手勢。 – Vaisakh

+0

有沒有辦法來禁用或重寫它? – CMOS

回答

1

檢查做任何操作之前水龍頭事件視圖..

- (IBAction)yourTapEvent:(UITapGestureRecognizer *)gestureRecognizer 
    { 
     UIView *piece = [gestureRecognizer view]; 

     if(piece == (view on which you have added gesture)) 
     { 
      //Do your necessary operation 
     } 

    } 
0

試試這個,這將有助於你在它的子視圖

- (void)tapAction:(UITapGestureRecognizer *) gestureRecognizer{ 
     UIView *v = [gestureRecognizer view];// Guesture added view 
     NSArray *temp = [self.view subviews]; 
     for (int i = 0; i<temp.count; i++) { 
      if([temp objectAtIndex:i]== v){ 
       // Do your swipe tap action here 
      } 
     } 
    }