0

我在 Photoshop 中创建了一个按钮,它已经是用于显示的确切大小。

在 IB 中,我创建了一个 RRB 并将背景图像设置为按钮 .png。但是,这不能正确显示 - 在我的 .png 按钮和 IB 提供的按钮之间有一个白边,尤其是在必须具有不同半径的角落处。我尝试过使用 IB 中的所有各种设置,但无法让它消失。

但是,如果不是将 .png 设置为背景图像,而是将其设置为图像,那么它看起来很完美(图像和背景图像之间有什么区别?)。但是,当 .png 设置为图像而不是背景时,我根本无法显示按钮文本,尽管当 .png 设置为背景图像时它会出现。我再次尝试在 IB 中设置所有各种设置,但无法显示文本。

我做错了什么,我应该怎么做才能让它工作?

我知道我可以以编程方式创建按钮和文本,但我想了解为什么我可以使用 IB 让它工作。

编辑:我已将类型更改为自定义,但仍无法正确显示。查看我发布的图像,没有文字的图像是它应该如何显示以及如果我将 .png 设置为图像而不是背景会是什么样子。第二个是如果我将背景图像设置为 .png 并将按钮类型设置为自定义时的样子。第三个是设置为 .png 的背景图像,类型为圆角矩形。在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

3 回答 3

2

使用按钮类型 = UIButtonTypeCustom

于 2012-07-19T15:37:37.487 回答
0

不要使用圆角矩形按钮类型,而是将按钮类型设置为 UIButtonTypeCustom。这将按照您的意愿进行,因为它会将按钮包裹在您提供的图像周围。

于 2012-07-19T15:38:04.837 回答
0

看起来您的按钮背景图像与您的UIButton.

iOS 支持所谓的“可拉伸图像”,允许您定义应该拉伸图像的哪个部分。不幸的是,这不能在 Interface Builder 中完成。在代码中,您可以这样做:

-(void)viewDidLoad
{
    [super viewDidLoad];
    UIImage *stretchableImage = [[someButton backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:5 topCapHeight:5];
    [someButton setBackgroundImage:stretchableImage forState:UIControlStateNormal];
}

重要提示stretchableImageWithLeftCapWidth:topCapHeight:在 iOS 5 中已弃用,但如果您还需要支持 iOS 4,这是唯一的解决方案。如果您只能使用 iOS 5,请使用resizableImageWithCapInsets:.

于 2012-07-19T16:18:00.767 回答