2011-12-14 130 views
1

我有一個UIButton。對於我的按鈕,我想用垂直漸變設置圖像。 enter image description hereiPhone:拉伸梯度圖像

按鈕可以改變它的寬度和高度,所以我需要使圖像可拉伸。我發現像這樣的方法:

UIImage* myGradientImage = [UIImage imageNamed:@"gradientImage.png"]; 
UIImage* stretchImage = [myGradientImage 
    stretchableImageWithLeftCapWidth:20 topCapHeight:20]; 

當按鈕寬度增長其伸展確定。但如果身高增長,漸變看起來不太好。 enter image description here

有沒有可能將bottomCapHeight和topCapHeight放在一起?或者對圖像說不要觸摸圖像的中心?

+0

你使用哪種功能來設置UIButton的圖像:setImage:forState:或了setBackgroundImage:forState:? – Niko 2011-12-14 12:29:47

+0

setBackgroundImage – Jim 2011-12-14 12:36:18

回答

2

如果你

UIImage* stretchImage = [myGradientImage stretchableImageWithLeftCapWidth:20 
                  topCapHeight:0]; 

高度將均勻拉伸,這看起來很好,如果你給一個高分辨率的原始圖像。

但是,如果您的圓角在圖像中,則會使它們變爲非圓形。要解決這個問題,不帶圓角提供您梯度圖像,然後做

button.layer.cornerRadius = 4;