我有一個UIImageView,並將userInteractionEnabled設置爲YES,還有一些手勢識別器可以讓用戶與之交互。視圖的圖像是一個形狀,其餘部分是透明的,我只希望圖像的不透明部分接受觸摸(超視圖也是交互式的)。如何將UIImageView上的觸摸限制到其UIImage的不透明部分?
我猜我需要重寫一個命中測試方法,但哪一個,怎麼樣?
我有一個UIImageView,並將userInteractionEnabled設置爲YES,還有一些手勢識別器可以讓用戶與之交互。視圖的圖像是一個形狀,其餘部分是透明的,我只希望圖像的不透明部分接受觸摸(超視圖也是交互式的)。如何將UIImageView上的觸摸限制到其UIImage的不透明部分?
我猜我需要重寫一個命中測試方法,但哪一個,怎麼樣?
儘管這並不是您所追求的確切答案,但這應該會讓您瞭解實現此目的的一種方法。這篇博客文章使用Cocoas2D框架。
http://abitofcode.com/2011/07/irregular-touch-detection-when-cgrect-is-not-enough-part-1/
您可以獲取在觸摸點(How to get the RGB values for a pixel on an image on the iphone)的像素顏色信息。也許你可以測試其alpha值以確定它是否不透明。