使用capinsets调整图像大小

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

// 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的button创build了一个图像。 首先,这是iphone4 / 5上使用的视网膜图像的正确尺寸,它是一个安装在高度为50的login框架上的button。 另一个宽度并不重要。

其次,下面是一个示例图像。 我似乎无法解决'resizableImageWithCapInsets:UIEdgeInsetsMake'正确的插入。 我如何解决这个问题? 有没有教程的任何地方如何做到这一点,除了我已经看到从Android链接的Android示例。

在这里输入图像说明

由于您正在明确设置button的框架,并且由于您正在创build自己的图像,因此不需要可resize的图像。 你的button是300×50,所以做一个300×50的图像(以及一个600×100的双分辨率设备图像),并设置button的背景图像。

不过,我也会给出一个代码示例。 对于实际提供的图像,如果将其命名为FacebookLogin@2x.png,以便将其用作双精度图像, resizableImageWithCapInsets:UIEdgeInsetsMake(0,50,0,50)使用的值是resizableImageWithCapInsets:UIEdgeInsetsMake(0,50,0,50) 。 结果如下:

在这里输入图像说明

我写了一个脚本来生成可resize的图像与帽子插图。 很有用。 https://github.com/kejinlu/capimage