iPhone:拉伸渐变图像

时间:2011-12-14 12:21:04

标签: iphone objective-c uiimage

我有一个UIButton。对于我的按钮,我想用垂直渐变设置图像。 enter image description here

按钮可以改变它的宽度和高度,所以我需要使图像可伸缩。我发现方法如:

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

当按钮宽度增加时,它伸展好了。但如果高度增加,渐变看起来不是很好。 enter image description here

有没有可能将bottomCapHeight和topCapHeight一起设置?或者说图像不要触摸图像中心?

1 个答案:

答案 0 :(得分:3)

如果你这样做

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

高度将均匀拉伸,如果您提供高分辨率的原始图像,这样看起来会很好。

但是,如果图像中有圆角,则会使它们成为非圆形。要解决这个问题,请提供没有圆角的渐变图像,然后执行

button.layer.cornerRadius = 4;