使用capinsets调整图像大小 [英] Resizing image using capinsets

查看:130
本文介绍了使用capinsets调整图像大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have setup a button like this:

// 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 。首先,对于适合登录框架高度为50的按钮,iphone4 / 5上使用的视网膜图像是否正确?另一个宽度与拉伸无关。

I have created an image in Photoshop for the button which is 200(w)x100(h)px. Firstly would this be the correct size for the retina image used on an iphone4/5 for a button fitting into the login frame which is 50 in height? The other width does not matter as being stretched.

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

Secondly, below is an example image. I cannot seem to work out the correct insets for the 'resizableImageWithCapInsets:UIEdgeInsetsMake'. How do I work this out? Is there a tutorial anywhere on how to do this, other than the Android example I have seen linked from SO.

推荐答案

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

Since you are setting the frame of the button explicitly, and since you are creating your own image, you do not need a resizable image. Your button is 300 by 50 so make a 300 by 50 image (along with a 600 by 100 image for a double-resolution device) and set the background image of the button to it.

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

However, I'll also give a code example. For the image that you actually give, if you name it FacebookLogin@2x.png so that it is used as the double-resolution image, the value you want to use is resizableImageWithCapInsets:UIEdgeInsetsMake(0,50,0,50). Here is the result:

这篇关于使用capinsets调整图像大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆