我有一个UISearchBar,它有一个取消按钮(显示使用-(void)setShowsCancelButton:animated).tintColor为了获得一个灰色的搜索栏,我已经改变了这样的搜索栏:
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
searchBar.tintColor = [UIColor colorWithWhite:0.8 alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
这就是它现在的样子 - 注意取消按钮也是灰色的:http://twitpic.com/c0hte
有没有办法分别设置取消按钮的颜色,所以它看起来更像这样:http://twitpic.com/c0i6q
我有一个UISearchBar,如下所示.如何更改取消按钮的文本颜色?

我想将UISearchBar的Cancel按钮更改为只有图像而没有文本的按钮。这就是我远离原始行为的地方
对此
朝着正确的方向迈出了一步,但问题是按钮太宽了。当我调试视图时,我可以看到它的左侧和右侧有 11 个点的按钮标签插入。有谁知道如何使按钮适合内容大小?图像是正方形的。
这是我的自定义按钮的代码:
UIBarButtonItem *barButtonAppearanceInSearchBar;
if (IOS9) {
barButtonAppearanceInSearchBar = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]];
} else {
barButtonAppearanceInSearchBar = [UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil];
}
barButtonAppearanceInSearchBar.image = [UIImage imageNamed:@"Close"];
barButtonAppearanceInSearchBar.title = nil;
Run Code Online (Sandbox Code Playgroud)
另一个奇怪的问题是,当我关闭搜索栏并再次激活它时,按钮图像变暗(它仍然存在,我在调试视图时可以看到它),所以它看起来像这样
知道如何使图标保持白色吗?我尝试了以下方法,但没有结果:
- (void)willPresentSearchController:(UISearchController *)searchController {
searchController.searchBar.tintColor = [UIColor whiteColor];
}
Run Code Online (Sandbox Code Playgroud) objective-c uibarbuttonitem uisearchbar ios uisearchcontroller