2010-10-07 98 views
2

我在UIView中有一個UIButton,它在UIViewController中,我已經從.xib文件中分配和插入。UIButton事件'Touch Up Inside'無法正常工作。 'Touch Down'正常工作

當一個IBAction掛鉤到UIButton的「Touch Down」事件時,它會正確觸發。但如果我將它與「Touch Up Inside」事件聯繫起來,它就不會迴應。

其他事件也不起作用。 「觸摸拖動輸入」,「觸摸拖動退出」,「觸摸外部」等。

有沒有人有任何想法,爲什麼這可能是?

豐富

+0

是UIViews userInteractionEnabled設置爲YES? – 2011-06-17 03:59:41

+0

你可以分享一些相關的代碼給我們看看嗎? – 2011-06-18 12:38:30

+0

我也有這個問題。我的UIButton在一個自定義表格單元格上 - 我在想這個tableview是在做一些奇怪的事情。 – nevster 2011-08-07 08:47:45

回答

4

首先,我可以完全肯定向你保證,正確連接在IB UIButtons像預期的那樣觸摸向上內的事件進行響應。 (你可以想象一下,如果他們沒有?!)

鑑於這種情況,公平地說,你沒有按照你的預期上鉤。這裏有一些事情要嘗試:

  • 讓你的動作打印日誌聲明的第一件事:

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • 入住IB,唯一的功能,你的按鈕連接到是你的觸摸內部行動。 (稍後,您可以將它連接到多個事件,但爲了測試,我們希望儘可能簡化。)

  • 確保您的按鈕是50x50或更大。 (小按鈕難以按下。)
  • 現在,讓您的按鈕成爲一個圓形矩形按鈕。如果您有圖像按鈕,並且圖像具有透明度,則可能難以按下。
  • 請確保您有正確的簽名爲您的操作:

    - (IBAction) myButtonPressedAction: (id) sender;

  • 只是要確保一切的清潔,從您的.xib刪除按鈕,並重新添加它。

  • 確保父視圖有userInteractionEnabled集。
  • 確保xib的FileOwner是您的視圖控制器類型。

如果沒有幫助,您將不得不告訴我們更多關於問題區域。也許在你的項目中添加IB的按鈕設置和代碼片段的屏幕截圖。

+0

「確保父視圖具有'userInteractionEnabled'設置」爲我工作!謝謝 – 2015-04-01 12:54:12