2

如何UIButton使用由以下内容组成的背景图像创建一个:

  1. 固定
  2. 一个固定的
  3. 许多中间图像一个接一个地放置以填充所有可用空间

像下面的例子一样?

用户界面按钮

编辑:我没有意识到在中心没有N个重复的图像,而只有一个拉伸的图像。请参阅已接受的答案。

4

1 回答 1

5

据我所知是做不到的。您可以做的是拉伸图像,但不能添加 n 个中间图像。

在两者之间添加可拉伸图像的代码是

//Create an image - Where UIEdgeInsets is in top left bottom right
UIImage* buttonImage = [[UIImage imageNamed:@"button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 16, 0, 16)];

// Create a custom buttom
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
myButton.frame = CGRectMake(0, 0, 100, buttonImage.size.height);
[myButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[myButton setTitle:@"Button" forState:UIControlStateNormal];

//Add it to view - if it is a view controller self.view
[self addView:myButton];

来自 Apple 的UIImage 类参考

" resizableImageWithCapInsets:

您可以使用此方法将大写插图添加到图像或更改图像的现有大写插图。[...] 在缩放或调整图像大小的过程中,被帽子覆盖的区域不会被缩放或调整大小。相反,每个方向上未被帽覆盖的像素区域被平铺,从左到右和从上到下,以调整图像大小。” [强调添加]

您可以在http://mobiledevelopertips.com/user-interface/ios-5-uiimage-and-resizableimagewithcapinsets.html阅读更多相关信息

于 2012-08-06T08:24:33.923 回答