目前,我将默认的放大镜作为我的搜索栏图标。然而,我想把一个自定义的图像放在它的位置上,特别是这个图像:
自定义箭头图标
我该如何将搜索栏默认图标更改为自定义图像?
目前,我将默认的放大镜作为我的搜索栏图标。然而,我想把一个自定义的图像放在它的位置上,特别是这个图像:
自定义箭头图标
我该如何将搜索栏默认图标更改为自定义图像?
您可以使用setImage
函数。
searchBar.setImage(UIImage(named: "your image"), forSearchBarIcon: .Search, state: .Normal)
Swift3
searchBar.setImage(UIImage(named: "Image Name"), for: .search, state: .normal)
方法1:
正如luiyezheng所回答的,您可以更改UISearchBar iCon的图像。
UISearchBar.appearance().setImage(UIImage(named: "new_search_icon"), forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState.Normal)
搜索图标颜色更改
方法二:
您可以更改UISearchBar
搜索图标的着色颜色。
let textFieldInsideSearchBar = searchBarCustom.valueForKey("searchField") as? UITextField
let imageV = textFieldInsideSearchBar?.leftView as! UIImageView
imageV.image = imageV.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
imageV.tintColor = UIColor.purpleColor()
输出:
搜索图标图像色彩变更
luiyezheng的答案非常好。
它的Swift 3版本是:
searchBar.setImage(UIImage(named: "Image Name"), for: .search, state: .normal)
Swift 5,iOS 13+
这很简单,从iOS 13开始,UISearchBar
有一个.searchTextField
属性,我们可能想要进行一些调整。
只需将图像视图设置为其.leftView
属性,如果需要,应用所需的色调颜色。
let image = UIImage(systemName: "location")
searchBar.searchTextField.leftView = UIImageView(image: image)
searchBar.searchTextField.leftView?.tintColor = .purple
imageV.image = imageV.image?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
- garrettmaring