2014-11-03 64 views
2

我有一個UIView上的UILabel。使UILabel塊觸摸事件到它後面的UIViews

enter image description here

UIView的具有雙水龍頭功能放大。但是,如果用戶雙擊文本,我想要一個文本編輯器出現,我不想讓圖像縮放。現在,如果他們雙擊文本,編輯器會出現並放大。

您知道我如何製作UILabel燕子觸摸事件嗎?

Objc和Swift的答案歡迎!

+0

雙水龍頭用手勢做了什麼?如果是這樣,請獲取UILabel的位置,並確保如果Tap點擊該UILabel框位置,則忽略該縮放呼叫。並讓其餘的工作一樣。 – 2014-11-04 19:22:23

+0

雖然國際海事組織這是不好的設計。 UIView不需要知道或關心觸摸是否發生在它上面的對象上。它應該只是迴應。 UILabel應該能夠停止向前移動並保持其包含的指令性 – Aggressor 2014-11-04 19:43:32

+1

我同意你的意見。頂部的對象應該攔截手勢,而且,除非被直接觸摸,否則不應該注意到該動作。所以,無論是設計手勢如何工作還是打算如何,我們都應該解決這個問題。 – 2014-11-04 19:48:59

回答

0

您只需要設置啓用的用戶交互。

myLabel.userInteractionEnabled = YES; 
+0

它已被設置爲true,但情況仍然存在 – Aggressor 2014-11-03 21:58:22

+0

然後,聽起來您已將觸摸偵聽器附加到兩者的超級視圖。 – 2014-11-03 22:01:30

+0

是的,視圖(綠色圖像)和文本一樣具有監聽器。這是因爲圖像正在傾聽雙擊以進行縮放,但我想要雙擊UILabel以阻止對圖像的按摩。但我不認爲在'root'UIView上有一個監聽器 – Aggressor 2014-11-03 22:07:08

0

你應該能夠爲它的用戶交互,並添加一個虛擬手勢識別。您可以輕鬆地做到這一點從故事板或代碼(SWIFT 3)

label.isUserInteractionEnabled = true 
label.gestureRecognizers = [UIGestureRecognizer()]