2013-10-01 148 views
0

我正在使用一個簡單的代碼來添加一些圖像到我的UIScrollView。此外,我已經實現了另一個代碼來檢測每個圖像上的觸摸。scrollView與UIImage響應觸摸

下面是代碼:

(void)handleSingleTap:(UIGestureRecognizer *)sender 
{ 

    int senderTagIs; 

    senderTagIs = sender.view.tag; 

    if (sender.view.layer.borderColor != [UIColor cyanColor].CGColor) { 

     sender.view.layer.borderColor = [UIColor cyanColor].CGColor; 

     UIImageView *showFullImage = (UIImageView *)[self.view viewWithTag:sender.view.tag+100]; 
     [showFullImage setTag:sender.view.tag+200]; 
     [self.view addSubview:showFullImage]; 
     showFullImage.hidden = NO; 

     NSLog(@"Show tag is: %i", sender.view.tag); 

    } 
    else 
    { 
     sender.view.layer.borderColor = [UIColor whiteColor].CGColor; 

     UIImageView *hideFullImage = (UIImageView *)[self.view viewWithTag:sender.view.tag+200]; 
     [hideFullImage setTag:sender.view.tag+100]; 
     hideFullImage.hidden = YES; 

     NSLog(@"Hide tag is: %i", sender.view.tag); 
    } 

} 

上面的代碼,設置邊框顏色爲青色和從UIScrollView顯示我的小圖像,在另一個UIImageView

但我的問題是,我無法設置選項來隱藏所有圖像,併爲所有圖像設置邊框顏色白色,當一個圖像被觸摸。例如:如果我觸摸第一個圖像,那麼代碼將工作,我的大UIImageView將顯示感動的圖像,並且從UIScrollView觸摸的圖像將獲得邊框的青色,到目前爲止這麼好。

現在,如果我觸摸第三個圖像,我的第一個圖像顯示,顏色邊框是青色,所以...我必須再次觸摸第一個圖像禁用,但這不是我想要的。

+0

你有動態或靜態圖像?你每次都有相同數量的圖像在你的scrollView? –

+0

是的,每次都有相同數量的圖像。靜態圖像。 – user2805816

+0

好吧,我有一個簡單的解決方案 –

回答

0

所以,我們在這裏做了一些事情。首先,我假設你正試圖在滾動視圖中顯示一些圖像集合,並使用一些自定義填充來指示圍繞它們的選擇。這聽起來適合使用UICollectionView和自定義單元格。

如果缺少進一步的信息,您不會重置舊的顏色。既可以將對選定圖像的引用保留爲類變量,或者假設圖像視圖位於像NSArray這樣的集合對象中,通過迭代對象並將其視圖重置爲未選中狀態來開始您的方法。

如果你只需要解決一個解決方案,第二個選項應該工作。我真的推薦使用UICollectionView。在開始的時候它會做更多的工作,特別是如果你沒有經驗,但是這非常值得學習。這裏有一個關於UICollectionView的好教程。