4

我已经设置了一个这样的按钮:

// Create facebook login button
facebookLoginButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 20, 300,50)];
facebookLoginButton.autoresizingMask = UIViewAutoresizingFlexibleWidth;
//NSLog(@"facebook button view height is %f",facebookLoginButton.bounds.size.height);
//NSLog(@"facebook button view width is %f",facebookLoginButton.bounds.size.width);

UIImage *facebookButton = [[UIImage imageNamed:@"FacebookLogin"]
                           resizableImageWithCapInsets:UIEdgeInsetsMake(16,140,86,92)];
[facebookLoginButton setBackgroundImage:facebookButton forState:UIControlStateNormal];

我在 Photoshop 中为 200(w)x100(h)px 的按钮创建了一个图像。首先,对于 iphone4/5 上使用的 Retina 图像,这是否是正确的尺寸,用于安装在 50 高的登录框架中的按钮?另一个宽度与被拉伸无关。

其次,下面是一个示例图像。我似乎无法为“resizableImageWithCapInsets:UIEdgeInsetsMake”找出正确的插图。我该如何解决?除了我看到的从 SO 链接的 Android 示例之外,是否有关于如何执行此操作的教程。

在此处输入图像描述

4

2 回答 2

4

由于您正在明确设置按钮的框架,并且由于您正在创建自己的图像,因此您不需要可调整大小的图像。您的按钮为 300 x 50,因此制作 300 x 50 图像(以及用于双分辨率设备的 600 x 100 图像)并将按钮的背景图像设置为它。

但是,我也会给出一个代码示例。对于您实际给出的图像,如果您将其命名为 FacebookLogin@2x.png 以便将其用作双分辨率图像,则您要使用的值为resizableImageWithCapInsets:UIEdgeInsetsMake(0,50,0,50). 结果如下:

在此处输入图像描述

于 2013-03-29T12:32:20.867 回答
2

我编写了一个脚本来生成带有帽子插图的可调整大小的图像。很有用。 https://github.com/kejinlu/capimage

于 2013-08-01T09:59:34.507 回答