2014-12-31 44 views
1

我在故事板中的UIScrollView上設置了UITapGestureRecognizer。滾動視圖包含其他內容(兩個UIView,一個UIWebView)。UIScrollView上的UITapGestureRecognizer

手勢識別性能如下:

  • 行動:dismissPopover
  • 委託:postViewController
  • gestureRecognizers:滾動查看
  • 狀態:啓用
  • numberOfTapsRequired:1
  • numberOfTouchesRequired:1
  • cancelTouchesInView:YES
  • delayTouchesBegan:否
  • delayTouchesEnded:YES

滾動視圖(相關)性能如下:

  • userInteractionEnabled:是
  • canCancelContentTouches:是

然而,當我點擊上滾動視圖的任何地方,手勢不起作用。

+0

我不確定你可以添加一個手勢識別器的滾動視圖,因爲它本地的手勢處理可能優先。方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:來自gesturerecognizer委託可能會很有趣,試圖實現並看看它是否被調用 – manecosta

+0

你可以絕對地爲scrollview添加手勢識別器,但是我認爲在這種情況下,你的scrollview的平移手勢吞噬了你的水龍頭。當輕敲手勢被識別時,您必須要求滾動視圖的平移手勢失敗。 –

+0

我會試試@LyndseyScott,謝謝! – entropid

回答

3

委託類(符合UIGestureRecognizerDelegate)必須實現

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

這樣,敲擊手勢會工作。

0

滾動視圖有它自己的手勢識別器。

您需要重寫該手勢識別器或先禁用該手勢識別器。

然後只有你的手勢識別器才能工作。

更好的方法是在滾動視圖中使用輕擊手勢,而不是添加手勢識別器。

+0

是的,但這需要繼承它的權利? – entropid

+0

滾動視圖有一個屬性** gestureRecognizers **,其類型爲NSArray,它可以將所有手勢添加到滾動視圖中。 –

+0

你說得對,我會檢查一下,但我不太確定。不管怎麼說,還是要謝謝你。 – entropid

相關問題