2

我正在使用以下代码创建 UIBarButtonItem:

UIBarButtonItem* searchBarButton = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"search_picto"] style:UIBarButtonItemStyleBordered target:self action:@selector(actionSearch:)] autorelease];
searchBarButton.tintColor = [UIColor colorWithRed:0.27 green:0.60 blue:0.20 alpha:1.00];

我将这个和另一个按钮添加到 UIToolbar,不确定这是否相关。这很好用,给了我想要的外观:

UIButtonBarItem 截图

问题是使用 iOS 4(我必须支持)我无法设置 tintColor。无法识别的选择器。如何为 iOS 4 创建这样的按钮?我需要能够设置 tintColor 并拥有 UIBarButtonItemStyleBordered。

谢谢你的帮助。


我让它像这样工作:

UISegmentedControl* searchButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"", nil]];
[searchButton setImage:[UIImage imageNamed:@"search_picto"] forSegmentAtIndex:0];
searchButton.momentary = YES;
searchButton.segmentedControlStyle = UISegmentedControlStyleBar;
searchButton.tintColor = [DELEGATE.config getColor:IFXShopConfigScopeShop name:@"navigationTint"];
[searchButton addTarget:self action:@selector(actionSearch:) forControlEvents:UIControlEventValueChanged];

你必须用一个空的 NSString 来初始化它,否则你不能设置一个图像。addTarget 也必须使用UIControlEventValueChanged

4

2 回答 2

2

tintColor是在 iOS5 中添加的,对于 iOS4在这里你有一个解决方案

于 2012-11-14T08:34:45.950 回答
1

您需要创建一个UIButton并自己绘制按钮使其看起来像这样,或者使用它设置背景图像并UIBarButtonItem使用自定义视图(您的UIButton)初始化。

PS 从 iOS6 版本开始,您无法再编译为 armv6,您可以支持的最低版本是 4.3,在我看来这不值得...

于 2012-11-14T08:36:15.503 回答