我正在尝试自定义UISearchBar
清除按钮。我可以在正常状态下为图标设置自定义图像,但是当我用手指触摸按钮时,我不知道如何为状态设置相同的图像。它始终具有系统外观。我尝试为所有可用状态设置相同的图像,但未能获得任何结果。
对于 iOS7:
[self.searchBar setImage:[UIImage imageNamed:@"icon_X_black.png"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal];
[self.searchBar setImage:[UIImage imageNamed:@"icon_X_black.png"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateHighlighted]; /// doesn't work
当我为 UIControlStateHighlighted
或 UIControlStateSelected
设置相同时没有变化.是否可以在 iOS7 中自定义此按钮?在iOS6中,当我为UIControlStateHighlighted
设置相同的图标时,它可以正常工作。
对于 iOS6:
[self.searchBar setImage:[UIImage imageNamed:@"icon_X_black.png"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal];
[self.searchBar setImage:[UIImage imageNamed:@"icon_X_black.png"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateHighlighted]; /// it works
提前谢谢你。
这是iOS7非常奇怪的行为,但如果要为两种状态设置相同的图像,解决方案是代码中语句的相反顺序
[self.searchBar setImage:[UIImage imageNamed:@"icon_X_black"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateHighlighted];
[self.searchBar setImage:[UIImage imageNamed:@"icon_X_black"] forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal];
您也可以以不同的名称复制icon_X_black文件并使用任何顺序。
来自UISearchBar
的文档:
州
控件状态。
有效状态为
UIControlStateNormal
和UIControlStateDisabled
。
这里似乎不支持UIControlStateHighlighted
。