2017-07-15 33 views
0

我有一張地圖,我想把它的不同區域變成可點擊的元素。我知道我可以使用photoshop拼接地圖,並將每個地區我想要成爲一個按鈕單獨,但這對我來說感覺有點不好意思,我不知道每個設備的縱橫比是否會保持不變當我把拼圖拼在一起。將單個圖像分成幾個複雜形狀的可點擊區域的最佳方法是什麼?如何將不同區域的圖像製作成按鈕(swift/xcode)?

回答

4

最通用的解決方案可能是通過附加一個水龍頭手勢識別器,然後解釋水龍頭手勢,使整個視圖(圖像視圖)可點擊。

我建議創建一個UIView的自定義子類,它內部有一個圖像視圖,附加一個水龍頭手勢識別器,並響應來自水龍頭手勢識別器的消息來確定哪個區域被挖掘。

+0

聽起來很不錯!使用這種方法,你認爲找出完美的區域是可行的,還是很難將其配置到如此高的精確度? – Dal

+1

@Dal你必須存儲一個歸一化點列表來定義每個區域的路徑。當用戶點擊您的視圖時,您只需測試自己的路徑即可知道自己在哪個路徑下創建(使用https://developer.apple.com/documentation/uikit/uibezierpath/1624345-contains)。每條路徑上的點數越多,精度就越高 – Imotep

+1

應該很容易以比用戶手指的準確度更高的準確度來檢測水龍頭。 (手指敲擊的本質是不精確的。)有各種方法來檢測敲擊。你可以使用一個矩形網格,一組任意的retangles。您可以使用一組點和半徑,或者您可以使用一組「UIBezierPaths」和「UIBezierPath」包含(_ :)'方法來檢測不規則形狀的抽頭。 –