2016-12-29 44 views
0

我有一個UIButton的子類。現在,我正在使用播放圖標的背景圖片,以便在方向更改之間正確縮放。當您按下按鈕時,播放圖標會按預期變暗。當你釋放時,它會恢復到原來的顏色。這由iOS默認實現。獲取應用於按下UIButton背景圖像的顏色

這裏是我的習慣UIButton進場的地方。我重寫drawRect方法在播放圖標周圍繪製一個灰色圓圈。我想要發生的是,當用戶按下按鈕時,我更新顏色屬性等於播放圖標的變暗顏色,但我不確定如何獲取該顏色。

tintColor不是我正在查找的屬性,因爲默認情況下始終會報告藍色。如何訪問在UIButton處於選定狀態時似乎應用的背景圖像的色調?

Fwiw,我在Swift 2.3中寫這個。

+1

我沒有看到任何代碼,所以我可能會離開。我有兩個想法,我將在兩個評論中分開。兩者都可能(至少)需要對您的方法進行一些重構。第一個想法是,如果您在UIButton子類中使用圖像,那麼爲什麼不找到正確的圖像並將它們導入到您的應用程序中? (即使它是一個框架,也可以做到這一點。)找到一個合適的應用程序,按住Ctrl並單擊並查看該應用程序的內容。我知道,你可能實際上正在破壞一些知識產權規則。儘管如此,這是我的第一個想法。 – dfd

+2

我的第二個想法。編碼比簡單的繼承UIButton更深一點。所有你到達那裏是UIButtonState,這聽起來不夠。但是UIButton的基類是UIControl。另外,任何視圖(UIControl?)的基類都是UIView。在某些時候,您可以推出自己的活動 - 這意味着您可以進入** touchDown **。進入*那層事件,你可以找到你想要的東西。 – dfd

+0

謝謝!我們不只是使用我當前繪製的圓形圖標來顯示按鈕的圖像,因爲客戶提供的圖像已經偏離了中心位置,我們需要在灰色圓圈上進行動畫處理以完美排列。當我試圖將一個圓圈作爲圖像的一部分時,我繪製的動畫將始終是一個像素或兩個像素。 **編輯**:即使調整動畫的代碼中的位置仍然會導致不完美的結果。 – FateNuller

回答

1

對不起,如果我很天真,但爲什麼不打出數字色彩計應用程序,測量按下按鈕的顏色,並在您的代碼中使用該RGB值?蘋果改變按鈕按下的視覺行爲並不是很有前途,但我認爲你的方法也不是未來的證明。