可拉伸图像拉伸部分宽于1px

时间:2010-10-06 10:05:39

标签: iphone cocoa-touch uiimage

我想创建一个UIButton,它使用可伸缩的图像作为背景图像,例如我可以轻松地调整按钮以用于不同的标签等。

所以我创建了以下可以正常工作的代码:

UIImage *bgImage = [[UIImage imageNamed:@"Button-Template.png"]stretchableImageWithLeftCapWidth:2 topCapHeight:2];
UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom];
loginButton.frame = CGRectMake(180, 280, 112, 40);
[loginButton setBackgroundImage:bgImage forState:UIControlStateNormal];
// some more stuff

现在这里有一个问题:iPhone SDK假设图像的可伸缩部分正好是一个像素的宽度,这在我的图像中并非如此,因为我想创建一个图案,这需要每两个像素重复一次(所以2个像素是一个模式单位)。我在文档中找不到任何信息是否可以改变可伸展部分宽度的值(在我的情况下是2而不是1),是否有人知道如何做到这一点或如何通过解决方法实现我的目标?我自己编写拉伸部分现在看起来有点牵强(尽管我可能要回到这里)。

谢谢!

2 个答案:

答案 0 :(得分:3)

从iOS 5.0开始,您可以使用resizableImageWithCapInsets:

检查UIImage Class Reference

但是此方法仅适用于iOS> = 5.0设备,因此可以是 现在拒绝。

答案 1 :(得分:0)

没有使用2个像素作为拉伸宽度的API。您必须自己在自定义视图中实现此行为,或使用具有特定宽度的图像。