ios - 更改 UISearchbar 放大镜颜色、PlaceHolder 颜色和 X 颜色

标签 ios swift uisearchbar uicolor

我搜索了各种解决方案来完成此任务,但它们要么在 objective-c 中,要么涉及更换放大镜图像。

enter image description here

enter image description here

我看过的以前的帖子:

Change color of magnifying glass

How to change UISearchBar Placeholder and image tint color?

我不想替换放大镜图像的原因是页面颜色是动态的,并且有超过 100+ 种颜色组合

如能提供有关更改 UISearchbar 放大镜颜色、PlaceHolder 颜色和 X 颜色的任何帮助,我们将不胜感激

最佳答案

objective-c :

NSArray *searchBarSubViews = [[self.searchBar.subviews objectAtIndex:0] subviews];
for (UIView *view in searchBarSubViews) {
    if([view isKindOfClass:[UITextField class]])
    {
        UITextField *textField = (UITextField*)view;
        UIImageView *imgView = (UIImageView*)textField.leftView;
        imgView.image = [imgView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
        imgView.tintColor = [UIColor whiteColor];

        UIButton *btnClear = (UIButton*)[textField valueForKey:@"clearButton"];
        [btnClear setImage:[btnClear.imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
        btnClear.tintColor = [UIColor whiteColor];

    }
}
[self.searchBar reloadInputViews];

swift :

// Text field in search bar.
let textField = searchController.searchBar.valueForKey("searchField") as! UITextField

let glassIconView = textField.leftView as! UIImageView
glassIconView.image = glassIconView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
glassIconView.tintColor = UIColor.whiteColor()

let clearButton = textField.valueForKey("clearButton") as! UIButton
clearButton.setImage(clearButton.imageView?.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), forState: .Normal)
clearButton.tintColor = UIColor.whiteColor()

关于ios - 更改 UISearchbar 放大镜颜色、PlaceHolder 颜色和 X 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473166/

相关文章:

ios - 如何将变量值连接到 slider ?

ios - addOperationWithBlock 的操作顺序

ios - 如何快速检查@NSManaged 属性是否为零?

iOS 8 导致 NSURLSession 出现问题

swift - 向 Swift 包管理器提供配置文件

swift - UIView 遵循 UIScrollView

swift - 一个 View Controller 中的两个 TableView swift2.0 中带有 didSelectRowAtIndexPath

iphone - 返回 NSString 首字母大写

ios - UISearchBar iOS 返回索引超出范围的错误

iphone - 使用 UISearchBar 时隐藏 UIToolBar