簡體   English   中英

Swift 禁用觸摸已結束

[英]Swift disable touchesEnded

當有人單擊按鈕時,我試圖在我的代碼中禁用 TouchesEnded 事件。 當用戶單擊另一個按鈕時,應再次激活 TouchesEnded。

因此,為了了解我的應用程序的功能,每次單擊屏幕時,屏幕上的文本都會發生變化。 但是當用戶單擊按鈕 a 時,應該禁用此觸摸事件。 當用戶點擊按鈕 b 時,它應該再次被激活。

我已經嘗試過self.view.isUserInteractionEnabled = false ,但是我無法單擊按鈕再次激活 userInteraction。

有人知道如何解決這個問題嗎?

根據您描述的行為,我假設您的按鈕是切換isUserInteractionEnabled的視圖的子視圖? 將該標志設置為 false 也會阻止用戶在視圖的子視圖上進行交互。 您可以通過調整視圖層次結構來解決此問題,以便您的按鈕和您的self.view是兄弟:也就是創建一個容器視圖,其中包含按鈕和您引用的self.view作為子項。

“禁用 TouchesEnded 事件”沒有意義。

您需要啟用或禁用按鈕並讓事件正常發送。 或者,正如您所說,您可以使用 isUserInteractionEnabled=false 使按鈕不再響應點擊。

編輯:

重讀你的帖子后,我想我明白你在說什么:

  1. “每次你點擊屏幕,屏幕上的文字都會改變”——這意味着點擊按鈕以外的任何地方。

  2. “但是當用戶點擊按鈕 a 時,這個觸摸事件應該被禁用。當用戶點擊按鈕 b 時,它應該再次被激活。”

因此,您希望單擊按鈕來禁用/啟用屏幕上其他地方的點擊。

我建議使用附加到內容視圖的輕擊手勢識別器 ( UITapGestureRecognizer ) 以獲取您的視圖 controller。 它們在觸發時觸發動作,並具有 isEnabled 屬性。 如果您將其設置為 false,則點擊手勢識別器將停止響應點擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM