2017-04-14 54 views
2

所以,在previos問題here找到我的anwser後,我想在這個UIImageView上添加GestureRecognizer。當用戶點擊時,顏色改變。而當他再次點擊默認圖像時就恢復了。UIImageView更改觸摸UIImage,然後恢復以前的UIImage

任何提示要做到這一點?

我在想每次點擊更新的列表,但不知道這是做最好的事情。

這裏是GestureRecognizer

UITapGestureRecognizer CreateTouchGesture(UIImageView imageView) 
{ 
    var touchGesture = new UITapGestureRecognizer((tg) => 
    { 
     imageView.Image = DrawSelectedBorder(imageView.Image); 
    }); 

     return touchGesture; 
} 
+0

什麼用對象ID類變量dictionnary關鍵和圖像作爲價值? – Leze

+0

這就是我嘗試過的第一次,但我不確定是否是這樣做的好方法,還有什麼? – SunLiker67

回答

2

根據意見,我可以爲您提供這樣的解決方案。 您使用UIImageView AnimationImages屬性來存儲基礎圖像。 當你再次按下圖像時,你從這個數組中檢索它。 要知道你處於哪種狀態,請使用Ighlighted屬性。

像這樣:

var touchGesture = new UITapGestureRecognizer((tg) => 
{ 
    if(!imageView.Highlighted){ 
     imageView.Highlighted = true; 
     imageView.AnimationImages = new UIImage[]{imageView.Image}; 
     imageView.Image = DrawSelectedBorder(imageView.Image); 
    }else{ 
     imageView.Highlighted = false; 
     imageView.Image = imageView.AnimationImages[0]; 
     System.Diagnostics.Debug.WriteLine(imageView.AccessibilityLabel); 
    } 
}); 
+0

再次感謝Leze,如果更好的解決方案來了,我會等待。測試你的,它的工作。如果它是內存安全的,就像這樣使用它。我有很多圖像在我的應用程序中以這種方式管理。 – SunLiker67