2012-07-05 30 views
1

我正在開發一個應用程序。我在其中使用了七十個UIImageViews。對於所有UIImageViews我使用單個UITapgestureRecognizer。但只有它的最後UIImageView工作。我如何處理一個UITapGesturerecognizer多於一個uiimageviews

所以,請告訴我,我怎麼可以使用的單UITapGgestureRecognizer所有UIImageViews。我的代碼看起來像

radiotap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(radiochanged:)]; 
radiotap.delegate=self; 

a=[[UIImageView alloc]initWithFrame:CGRectMake(10, male.frame.origin.y, ima.size.width, ima.size.height)]; 
[a setImage:ima]; 
a.tag=0; 
a.userInteractionEnabled=YES; 
[a addGestureRecognizer:radiotap]; 
[scroll addSubview:a]; 


b=[[UIImageView alloc]initWithFrame:CGRectMake(10, female.frame.origin.y, ima.size.width, ima.size.height)]; 
[a setImage:ima]; 
b.tag=1; 
b.userInteractionEnabled=YES; 
[b addGestureRecognizer:radiotap]; 
[scroll addSubview:b]; 

喜歡我增加了70個UIImageViews的。

+0

你能證明你的代碼是如何做的呢? – rishi 2012-07-05 09:38:34

+0

你在哪裏聲明UITapGgestureRecognizer?它是全局的還是本地的? – 2012-07-05 09:39:23

+0

全局聲明UITapGestureRecognizer。 – user1498119 2012-07-05 09:44:44

回答

0
  1. 添加點擊手勢識別器到的圖像視圖容器
  2. 禁止用戶交互上的所有圖像視圖

通過這種方式,觸摸到容器保持圖像的觀點下通過。

嘿,我現在得到了你的問題。

爲每個圖像視圖創建新的手勢識別器。問題是你已經創建了一個手勢識別器的單個實例。

我希望你在那裏得到了錯誤,並會適當地編輯你的代碼。讓我知道如果你卡住了。

+0

但是,如果我這樣做,那麼當我點擊該容器時,該手勢方法將被觸發。 – user1498119 2012-07-05 09:51:39

+0

這不是你想要做的嗎? – 2012-07-05 12:19:03

+0

立即檢查我的編輯。 – 2012-07-05 12:21:19

0

您可以將一個UITapGestureRecognizer分配給一個UIView。其中一個想法是將子類UIIimageView添加爲UITapgestureRecognizer作爲屬性。並且在for循環中爲每個UIImageView分配一個新的UITapGestureRecognizer

0

當您添加UITapGestureRecognizer在現實視圖,你這樣做是:

要設置鏈接到包含視圖的UITapGestureRecognizer的屬性:即每個UITapGestureRecognizer只有與之關聯的一個UIView 。

這就是爲什麼你只能在你設置的最後一箇中看到它。

做你想做什麼,所以你需要創建/分配/ init中的UITapGestureRecognizer每個視圖...

相關問題