2011-01-20 71 views
0

我需要類似的東西:
圖像映射(我認爲它必須與某種類型的UIView做),這是一個圖像(一個特殊的地圖),還有一些地區(多邊形),它應該在觸摸時調用事件...如何爲圖像引發事件的poligon-「疊加」?
圖片地圖上面提到和UITableViewUIScrollView - 但我認爲這不應該是那麼難......?以後應該看起來像這樣。多邊形的UIView觸發事件

-------------------------- UIScrollView top 
+-----------------------+ 
+ polygon UIView  + 
+-----------------------+ 
+-----------------------+ 
+  UITableView  + 
+-----------------------+ 
-------------------------- UIScrollView bottom 

在此先感謝您的答案!

回答

1

我會創建一個UIView的子類(例如DOMImageMapView),其中包含與其關聯的CGPathRefUIBezierPath實例的列表。

DOMImageMapViewdrawRect:實現,你會繪製圖像,然後通過每個路徑的實例進行迭代,並使用CGContextFillPath()-[UIBezierPath fill]填充它。

對於命中測試,您將執行touchesEnded:withEvent:(或類似),並通過CGPathContainsPoint()-[UIBezierPath containsPoint:]測試每條路徑。如果其中一個路徑返回YES,請調用代理方法,如imageMapView:didSelectArea:

UITableViewController(或UIViewController與它UITableView)將創建DOMImageMapView並設置本身作爲delegate。當輕擊一個區域時,控制器將收到回調並可以適當地處理事件。

+0

感謝迄今。我想我知道如何實現這一點。完成後會報告。雖然可能需要一些時間;-)。 – thedom 2011-01-21 14:56:57