2014-10-09 117 views
0

我知道這是一個真正的「宏觀」問題,但我不知道如何開始。iOS:交互式UIImageView

我有一個圖像(.png),其中包含大量的矩形(這是一個事件地圖)。用戶可以放大/縮小圖像。 我想爲地圖添加一些交互。當用戶觸摸矩形時,我想識別它是哪個矩形,並顯示帶有名稱的標籤。

我知道如何獲得X,Y,但是計算矩形區域的問題以及用戶縮放圖像時,我丟失了原始X/Y。

對不起,不好的問題,希望有人能幫助我。

我的地圖它通過這種方式加載:

UIImage *image = [UIImage imageNamed:@"event-map.png"]; 
CGSize imageSize = image.size; 
self.mapImage.frame = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height); 
self.mapImage.image = image; 
self.scrollView.contentSize = imageSize; 
self.scrollView.zoomScale = 0.29; 
+0

嗨Lucks,你說得對「宏觀」:-)所以你可以計算出已經點擊過的表格圖片中的哪個像素,但那又如何?就你所透露的,你沒有辦法將它轉換成表格的身份?我認爲你將需要訪問這些信息。你可以用'plist'文件描述表格,然後爲每個表格設置一個'UIView',而不是圖像。然後,當這些被竊聽時,你可以檢測到這一點。 – Benjohn 2014-10-09 22:24:50

+0

嗨@Benjohn謝謝你的回答。你有任何教程或鏈接參考來開發這個? – 2014-10-09 22:40:12

回答

0

在您的矩形圖,你可以使用:

[self.window convertPoint:myPoint toView:self] 

這會貴點轉換成你的視野空間。一旦出現,你可以計算出你是否基於視圖中的矩形邊界與轉換點之間的矩形。

如果您不知道圖像中矩形的邊界,但它們都是非常特定的像素顏色,則可以使用獲取圖像的數據並將命中像素的顏色與預期顏色進行比較。

+0

我有一個包含很多矩形的圖像。我怎樣才能使用你的代碼? – 2014-10-09 22:03:00

+0

我添加了一部分加載地圖的代碼 – 2014-10-09 22:03:57