我開發了一個動畫餅圖,當用戶點擊一個餅圖切片時,它出現在圖表中。目前,我正在繪製不同CGLayer上的Pie的每一片。當用戶在切片上點擊時,我會選取該特定像素的顏色,並將其與用於提取相應圖層的RGB代碼(硬編碼)相匹配。iOS SDK-如何檢測餅圖片上的觸摸?
我不想使用任何第三方製圖庫如核心圖。
是否有辦法讓每個圖層成爲一個單獨的圖形實體,以便可以檢測到該對象的觸摸?
謝謝
我開發了一個動畫餅圖,當用戶點擊一個餅圖切片時,它出現在圖表中。目前,我正在繪製不同CGLayer上的Pie的每一片。當用戶在切片上點擊時,我會選取該特定像素的顏色,並將其與用於提取相應圖層的RGB代碼(硬編碼)相匹配。iOS SDK-如何檢測餅圖片上的觸摸?
我不想使用任何第三方製圖庫如核心圖。
是否有辦法讓每個圖層成爲一個單獨的圖形實體,以便可以檢測到該對象的觸摸?
謝謝
如果您使用的是CG,那麼您可以測試一個點是否在路徑中。
結賬CGPathContainsPoint
here。
難道你不能只使用觸摸的X,Y座標來計算與餅圖中心的距離以及距離嗎?
如果距離小於半徑,則使用角度來確定哪個圖表被點擊。
我用CAShapeLayer
來表示個別的扇形切片。 CAShapeLayer
實例有一個路徑屬性,您可以使用它來測試點是否在該路徑內。
只需檢測父級UIView上的觸點,然後遍歷所有餅圖切片並使用CGPathContainsPoint
函數來測試點是否在該餅圖切片內。