2016-11-10 33 views
0

我有一個用於筆刷的UIButton,另一個用於縮放。如果UIButton圖像發生變化,縮放圖像將返回1:1

如果我保持圖像相同,兩者都很好。 圖像被附着在Interface Builder的按鈕:

enter image description here

如果我改變了「畫」按鈕圖像,縮放動作後,圖像將恢復到沒有變焦。

drawButton.setImage(UIImage.init(named: "Brush.png"), for: UIControlState.normal) 

如何在不影響縮放的情況下更改圖像 - 我希望能夠以縮放模式進行繪製。

我已經試過這樣的事情:

drawButton.imageView?.image = UIImage.init(named: "BrushYellow.png") 

這不會影響變焦,但不改變形象。請點擊歡迎。

+1

我傾向於使用背景圖像並強制在我的按鈕上顯示與圖像方面相同的寬高比。它可以防止您所指的所有棘手問題。 – Sethmr

+0

嗯,我只是嘗試使用背景圖像,但我得到同樣的問題 - 我不得不設置一個UIControlState值和縮放變得won。。我可能只需要使用變化的背景顏色。 –

+0

@Sethmr,我可能會得到一些地方..如果我設置沒有默認圖像的按鈕,然後設置背景圖像與模式..圖像,它可能工作。我如何設置方面,以適應按鈕的大小..只使用.frame?謝謝! –

回答

1

我傾向於使用背景圖像並強制等於圖像在我按鈕上的縱橫比。它可以防止您所指的所有棘手問題。

看看照片的實際方面,並設置故事板上的約束與圖像尺寸的縱橫比。如果您以編程方式創建它,那麼使用比率設置框架也應該可以。請確保您使用的是

UIButton().setBackgroundImage(image: UIImage?, for: UIControlState) 

用於更改圖像或您將有重疊的圖像。如果你需要設置它爲多個控制狀態,那麼這樣做,但我很少發現除了以外的其他任何必要條件。正常

如果您需要更改約束,那麼您可以創建一個插座並更改它的乘數從1:1到任何它應該返回的位置。如果用戶界面沒有自行更新,您可能需要撥打self.view.layoutIfNeeded()

+0

謝謝!但是,如果我使用setBackgroundImage:for:UIControlState,那麼我會遇到同樣令人討厭的行爲,就好像我剛剛使用setImage :: Up投票一樣,因爲您讓我考慮了UIBackgroundColor以及是否可以將圖像添加到該圖像中。 –

+0

使用約束的事情。將圖像添加爲顏色比其價值更多,我懷疑是否會改變您遇到的問題。 – Sethmr