2013-03-29 86 views
2

我有安装一个按钮这样的:调整大小图像使用capinsets

// 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)×100(H)像素。首先,这是iphone4/5上使用的视网膜图像的正确大小,是否适合装入高度为50英寸的登录帧的按钮?另一个宽度与拉伸无关。

其次,下面是一个示例图片。我似乎无法解决'resizableImageWithCapInsets:UIEdgeInsetsMake'的正确插入问题。我如何解决这个问题?除了我已经见过的Android连接示例之外,有没有关于如何做到这一点的教程。

enter image description here

回答

2

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

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

enter image description here

+0

示例图像是200x100像素,需要拉伸以便F保持在左侧和右侧部分延伸 – StuartM

+0

好吧,我已经编辑了答案,以便与您实际提供的图像一起播放。 – matt

+0

谢谢,我接受了答案 - 我实际上在这里创建了另一个问题http://stackoverflow.com/questions/15713799/image-not-resizing-correctly-using-resizableimagewithcapinsets - 这实际上是相同的答案。但是,如果你能提供关于如何解决这个问题的信息,或者任何有用的教程都可以从中学到很多。我找不到任何有用/深入的Apple文档。 – StuartM