1

我正在尝试使用外观方法(> iOS 5.0)自定义 UIBarButtonItem 。它适用于 UIControlStateNormal,但不适用于突出显示或禁用。查看图片

好的默认状态,注意右边的禁用状态

突出显示的状态也不起作用

这是我用来设置这些的代码:

        // now configure the UIBarButtonItems
    UIImage *buttonBGInactive = [[UIImage imageNamed:@"button-navbar-30-inactive.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
    UIImage *buttonBGActive = [[UIImage imageNamed:@"button-navbar-30-pressed.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];

    [[UIBarButtonItem appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage: buttonBGInactive forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage: buttonBGActive forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];

有任何想法吗?图片本身是 30x30px,我不需要横向模式。

4

1 回答 1

2

我找到了问题的解决方案。我的图像是 30x30 像素,我将可调整大小的端盖设置为

UIEdgeInsetsMake(0, 15, 0, 15)

通过将那些 15 设置为 14,问题就消失了。所以最好不要让端盖正好是图像宽度的一半。

于 2012-09-06T13:59:32.377 回答