使用resizableImageWithCapInsets计算可伸缩图像

时间:2013-03-28 23:43:34

标签: ios ios5 uiimage image-resizing

我正在努力计算resizableImageWithCapInsets的参数。

我创建了一个如下所示的按钮图像,我将用于Facebook登录。我希望Facebook'f'是静态的,其余的(右侧)可以伸展,因为我相信你可以想象。

enter image description here

这是我最接近输出的代码:

UIImage *facebookButton = [[UIImage imageNamed:@"FacebookLogin"]
                           resizableImageWithCapInsets:UIEdgeInsetsMake(18, 36, 18, 18)];

结果如下:

enter image description here

我试图在网络上关注this explanation,但我发现很难理解。如果有人知道正确的调整大小以及任何有用的教程/指南都会很棒。

2 个答案:

答案 0 :(得分:0)

在您发布的链接中,他只使用没有图像的按钮 - 整个按钮仍在拉伸,如果他在这些按钮上有图像,结果将是您遇到的。

您需要将图片拆分为'图标'以及'文字'零件,有点像这样: enter image description here

我是Obj-C的新手,但希望这会有所帮助。

答案 1 :(得分:0)

看起来您设置的按钮框架比图像高。这不会成为' f'看起来不舒服。最好的解决方案是将按钮的框架设置为与图像相同的高度(36px)。但如果你需要,请设置这样的插图:

UIEdgeInsetsMake(4, 36, 31, 35)

这将拉伸' f'正上方的蓝线。在圆角的下方,将徽标留在左下角。 (插入顺序为顶部,右侧,底部,左侧。)