0
這是一個UIView,它是黃色的矩形,我重寫drawRect:方法繪製紅色區域,我添加了UITapGesture等,但我只想響應紅色區域,如果用戶在黃色內部單擊矩形,但不在紅色區域,我不會迴應。我是否需要手動獲取位置並計算它是否在範圍內?任何更聰明的方式呢?謝謝。 如何限制用戶與UIView內部區域的交互?
這是一個UIView,它是黃色的矩形,我重寫drawRect:方法繪製紅色區域,我添加了UITapGesture等,但我只想響應紅色區域,如果用戶在黃色內部單擊矩形,但不在紅色區域,我不會迴應。我是否需要手動獲取位置並計算它是否在範圍內?任何更聰明的方式呢?謝謝。 如何限制用戶與UIView內部區域的交互?
我知道的唯一解決方案是實現gestureRecognizer:shouldReceiveTouch:
委託方法,並驗證您的觸摸是在紅色矩形內/外。
如果你不需要黃色矩形,你可以做什麼而不是重寫'drawRect'方法,只需旋轉UIView並添加一個手勢識別器到視圖。或者創建兩個視圖,並讓最內層的視圖對觸摸做出響應。這可能會更容易。 – KerrM 2014-12-09 11:30:10
我想,它會很容易地創建你的紅色矩形作爲一個視圖,旋轉此視圖redRectangleView 45度。並添加到此視圖的手勢。但有幾種方法。 – 2014-12-09 11:30:12
而不是重寫uiview中的直接方法併爲獲取觸摸座標編寫邏輯。嘗試在帶有黃色邊框的uiview中添加紅色填充顏色的其他視圖。它將簡化您的邏輯,因爲您只需在紅色視圖上添加手勢即可。 – 2014-12-09 11:30:56