ios – 如何更改UISearchBar占位符和图像色调?

我一直在尝试搜索结果几个小时,但我不能得到这个想法.也许是不可能的.我试图改变UISearchBar的占位符文字和放大镜的色调颜色.如果重要的话,我只针对iOS 8.0.这是我的代码,现在看起来如何
let searchBar = UISearchBar()
searchBar.placeholder = "Search"
searchBar.searchBarStyle = UISearchBarStyle.Minimal
searchBar.tintColor = UIColor.whiteColor()

我希望搜索和放大镜是白色的,或者是深绿色.

解决方法

如果您有可以使用的自定义图像,则可以使用类似于以下内容的方式设置图像并更改占位符文本颜色
[searchBar setimage:[UIImage imageNamed:@"SearchWhite"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStatenormal];

UITextField *searchTextField = [searchBar valueForKey:@"_searchField"];    
if ([searchTextField respondsToSelector:@selector(setAttributedplaceholder:)]) {
    UIColor *color = [UIColor purpleColor];
    [searchTextField setAttributedplaceholder:[[NSAttributedString alloc] initWithString:@"Search" attributes:@{NSForegroundColorAttributeName: color}]];
}

在这个例子中,我使用了purpleColor,而您可以使用(UIColor *)colorWithRed(CGFloat)红色绿色(CGFloat)绿色蓝色(CGFloat)蓝色alpha:(CGFloat)alpha方法来创建自定义深绿色.

编辑:我只是意识到你正在迅速地写这篇文章.快速键入这个,所以我没有把答案放在Obj-C中.

searchBar.setimage(UIImage(named: "SearchWhite"),forSearchBarIcon: UISearchBarIcon.Search,state: UIControlState.normal);

    var searchTextField: UITextField? = searchBar.valueForKey("searchField") as? UITextField
    if searchTextField!.respondsToSelector(Selector("attributedplaceholder")) {
        var color = UIColor.purpleColor()
        let attributeDict = [NSForegroundColorAttributeName: UIColor.purpleColor()]
        searchTextField!.attributedplaceholder = NSAttributedString(string: "search",attributes: attributeDict)
    }

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...