2011-12-14 16 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の画像を設定するために使用するのですか? – Niko

+0

setBackgroundImage – Jim

答えて

2

そうした場合、あなたは、高解像度のオリジナル画像を与える場合罰金になります高さが均一に伸ばします

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

、。

ただし、丸い角がイメージ内にある場合は、円形ではありません。 setImage:forState:またはsetBackgroundImage:forState:それを回避するために、角を丸くすることなく、自分の勾配画像を供給し、その後、

button.layer.cornerRadius = 4; 
+0

神様、私は盲目です...私はtopCapHeight:0は何もしないと思った...ありがとう.. – Jim