Resizing image using capinsets(使用 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];
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.
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.
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.
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 调整图像大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 capinsets 调整图像大小
基础教程推荐
- iOS4 创建后台定时器 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
