2011-10-09 63 views
0

是否可以創建UIButton的子類,並在OpenGL ES中執行按鈕繪製?我有一個只使用OpenGL ES的遊戲應用程序,我不想在性能和美觀方面添加合成的UIkit元素。然後,我再也不想真正實現對rects的觸摸測試,因爲正確地做到這一點,因爲蘋果對內部和外部rects和各種狀態轉換都有相當多的代碼。我真正想要的是讓UIButton完成所有觸摸狀態的更改,但不讓它畫圖,同時允許我使用OpenGL和其他所有繪圖代碼自己繪製按鈕。有關如何繼續的任何建議或代碼示例?Ios UIButton使用OpenGL進行子類化

+0

其實我發現混合UIKit與OpenGL並不像我認爲的性能明智一樣糟糕。我問了這個問題,因爲我只是想把所有的按鈕都作爲紋理的一部分,我更新了每一幀,並讓UIKit只做點擊測試。如果有一種方法可以讓UIKit根本沒有畫出任何東西,但是仍然可以很好地回電給我,我會感興趣的。 – Robotbugs

回答

0

我發現這個問題的一個答案是使用UIButton,但使用自定義樣式。然後,如果您沒有爲按鈕狀態設置實際圖像,則它根本不會繪製任何圖像,但仍然可以通過在您提供的矩形中檢測到所需操作時調用回來作爲按鈕來使用。通過這種方式,您可以將GLES紋理的區域激活爲按鈕。您可以在按鈕被觸摸或釋放時使用或不使用動作來獲得回調,如果需要,您可以自行更新紋理以響應這些動作。但最終我沒有這樣做,只是按照正常的UIKit使用習慣按鈕和圖像。我沒有發現任何使用UIKit在OpenGL ES之上的應用程序過度放慢速度。