2014-05-21 58 views
1

我在手勢工作時遇到了一些麻煩。讓我解釋一下: 我得到了一個包含背景UIImageView和背景UIImageView的視圖。在這個背景圖像視圖中,我添加了一些包含圖像和按鈕的UIViews,以便用戶可以編輯。當他們在ImageView上編輯這些視圖時,一切正常。但是,如果我開始在backgroundView上編輯這些視圖,它不再工作。讓顯示一些圖像,以幫助您理解:手勢重構器不起作用

image1

編輯視圖工作正常,在此

image2

不要工作

所有三個按鈕了它擁有手勢識別器。 這是不工作,因爲視圖不在超視圖了?我是否必須將視圖添加到self.view而不是添加到imageView才能識別每個手勢?

+1

如果他們自己的上海華超出界限的意見不來觸摸反應,所以你爲什麼猜想它不工作是正確的。 – rdelmar

+0

在這種情況下,是否有辦法強制這個視圖響應這個手勢?因爲我仍然可以移動視圖,即使它不在圖像視圖的界限內,但按鈕(關閉,調整大小和旋轉)不再響應 –

+1

您可以將它移出超級視圖,因爲原始的觸摸發生了在superview裏面。如果您在超視圖之外時擡起手指,是否可以再次移動它?我猜不是。據我所知,唯一的解決辦法就是像你所建議的那樣將這個視圖添加到self.view中。 – rdelmar

回答

0

覆蓋以下UIGestureRecognizerDelegate方法並確保設置了代表。聽起來你一定會看到一些衝突,可以使用這些方法的一些細心的邏輯來避免:

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer; 
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer; 
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 
+0

嗨,我看不出這會如何幫助我,因爲當視圖超出圖像視圖範圍時,手勢方法永遠不會被觸發。你能解釋一下嗎? –