2015-10-19 74 views
0

我有一個MKMapViewmainMap以正方形比例,其寬度等於iPhone屏幕寬度。我讓它循環利用:cliptobound(ed)元素隱藏部分下方的元素的可訪問性

mainMap.layer.cornerRadius = mainMap.frame.width/2 
mainMap.clipsToBounds = true 

現在我有一個UIButton這是mapView下,它只是部分可見。

這一切都很好,但是當我點擊按鈕時,水龍頭會被mapView的不可見部分捕獲。

是否需要額外的步驟使mapView的不可見部分不會干擾用戶界面?

+0

是的,有。好的,我回答了這個問題,我有獎金嗎? :) – matt

+0

我沒有在這裏看到答案? – Kashif

+0

如果你的答案有幫助,是的,你確實得到賞金 – Kashif

回答

1

您需要覆蓋背景視圖上的命中測試(hitTest:withEvent:)。你會撥打super,大部分時間你會返回任何回報。但是,如果它返回地圖視圖,則將根據地圖視圖的框架檢查點(第一個參數),並確定它是否在圓內 - 這很容易計算,因爲CGPath具有CGPathContainsPoint函數。如果是,那麼返回什麼super給你,地圖視圖。但如果不是,則返回nil。觸摸現在會「落在」它後面的任何東西,如果這是按鈕,該按鈕將接收到水龍頭。

+0

很多討論和代碼示例在我的書中:http://www.apeth.com/iOSBook/ch18.html#_hit_testing – matt

+0

好東西,我會檢查出 – Kashif

+0

反正告訴水龍頭是否在視圖的不可見部分? – Kashif