可伸缩的图像

时间:2012-06-13 15:08:57

标签: iphone objective-c uiimage uibutton stretching

参考:iPhone stretchableImageWithLeftCapWidth only makes "D"s

我有一个大小为13x30的按钮的图像。我想拉伸图像以填充大小为45x30的按钮。

以下是我正在使用的代码:

UIImage *shareImage = [[UIImage imageNamed:@"btn_red"] stretchableImageWithLeftCapWidth:16.0f topCapHeight:0.0];
UIButton *shareButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 46.0f, 30.0f)];
etc....

我得到的图像很完整。我正在获得真实大小的图像,背后有一些较浅的阴影,如图像button所示。

为什么会这样?我根本不明白。我的可伸缩逻辑是正确的,我已经按照每个人在教程/帖子中说的内容。

如果我得到一些帮助,我会非常感激。

3 个答案:

答案 0 :(得分:0)

我认为你的左帽宽度错了?如果您的第一张图片只有13像素宽,那么左边的图片怎么能是16?

左上角是原始图像上保持未拉伸的宽度

答案 1 :(得分:0)

跟进保罗的回答,

你想确保留出一些空间用于拉伸,所以使用Photoshop或类似的东西放大,并决定什么左边像素是绝对必需的。

请参阅:http://idevrecipes.com/2010/12/08/stretchable-images-and-buttons/

答案 2 :(得分:0)

LeftCapWidth应为6.5;

UIImage *shareImage = [[UIImage imageNamed:@"btn_red"] stretchableImageWithLeftCapWidth:6.5 topCapHeight:0.0];
UIButton *shareButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 46.0f, 30.0f)];