5
我試圖在iPhone視圖上放置一個圓形圖像,然後在圓圈內部使用水龍頭,但不在其外部。我遇到的問題是,當我在界面生成器的屏幕視圖上放置UIImageView時,我似乎被限制爲矩形形狀。我嘗試使用一個圓圈圖像,左邊的區域保持透明,但總體上圖像仍然是矩形,所以當它放置在UIImageView上並且連接起來以識別輕擊手勢時,它仍會拾取圓圈本身之外的水龍頭。如何將iPhone輕拍手勢識別限制在圓形圖像內?
下圖顯示了我的意思。藍色圓點代表保存圖像的UIImageView的外邊框。輕擊手勢識別當前鏈接到該UIImageView,但正如您所看到的那樣,在UIImageView的角落有一些空間不在圓形圖像中。有什麼辦法可以使UIImageView符合非矩形形狀,或者在不使用UIImageView的情況下將圖像放在視圖上,並且仍然能夠連接水龍頭識別?
我很新的iPhone圖形,但沒有任何人有這方面的一些想法或者可以點我在正確的方向?
謝謝!
感謝您的答覆,並且我假設是可行的。但是,我真正想知道的(現在我知道我應該對自己的問題更加具體)是,如果可以將不規則形狀的圖像連接到手勢識別器。我選擇了一個圓形圖像的例子,思考(不正確),無論對圓的光滑邊緣起什麼作用,都可以適應一個瘋狂形狀的多邊形,但事實並非如此。再次感謝您的回覆,我會發布更具體的問題。 – ScottS 2010-07-25 01:06:11
如果您已經擁有'CGPath',則可以使用'CGPathContainsPoint'。如果您具有部分透明而不是路徑,則可能需要嘗試將其渲染到緩衝區中,然後測試與觸摸座標關聯的像素。 – rpetrich 2010-07-25 01:33:37
我發現我可以使用CGPoint獲取CGPoint tapLocation = [識別器locationInView:self.view];這會給我用戶在圖像上點擊的x,y座標。但現在我不知道如何匹配那個x,y座標與我的圖像上的特定區域。如果我沒有找到辦法,我會盡快將其作爲單獨的問題發佈。也許你的想法是「把它渲染成緩衝區,然後測試與觸摸座標相關聯的像素」就可以實現,但是你是否還有關於如何實現這一點的更多信息? – ScottS 2010-07-27 01:39:56