gpt4 book ai didi

iphone - iOS 6 外观 API UIBarButtonSystemItemAdd 不工作?

转载 作者:行者123 更新时间:2023-11-28 22:42:37 24 4
gpt4 key购买 nike

在 iOS 6 中,您可以访问 Appearance API 中的一个新方法:

- (void)setBackgroundImage:(UIImage *)backgroundImage
forState:(UIControlState)state
style:(UIBarButtonItemStyle)style
barMetrics:(UIBarMetrics)barMetrics

因此您可以为每个导航按钮样式设置不同的背景。事情是,它看起来不适用于 UIBarButtonSystemItemAdd 样式,但它适用于 UIBarButtonItemStyleDone。这是我的代码片段:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0f)
{
// Works well
[barButton setBackgroundImage:[[UIImage imageNamed:@"nav-button-done.png"] stretchableImageWithLeftCapWidth:7 topCapHeight:0]
forState:UIControlStateNormal
style:UIBarButtonItemStyleDone
barMetrics:UIBarMetricsDefault];

// Not working
[barButton setBackgroundImage:[[UIImage imageNamed:@"nav-button-done.png"] stretchableImageWithLeftCapWidth:7 topCapHeight:0]
forState:UIControlStateNormal
style:UIBarButtonSystemItemAdd
barMetrics:UIBarMetricsDefault];
}

有人知道为什么它不起作用吗?

最佳答案

注意 UIBarButtonItem 的方法声明:

- (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state style:(UIBarButtonItemStyle)style barMetrics:(UIBarMetrics)barMetrics

问题在于 UIBarButtonSystemItemAdd 不是有效的 UIBarButtonItemStyle。支持的样式有:

typedef enum {
UIBarButtonItemStylePlain,
UIBarButtonItemStyleBordered,
UIBarButtonItemStyleDone,
} UIBarButtonItemStyle;

您将 UIBarButtonItemStyle 与 UIBarButtonSystemItem 混为一谈,它们实际上并不相同,只是忽略了您对其设置的值并恢复为默认类型。

关于iphone - iOS 6 外观 API UIBarButtonSystemItemAdd 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com