ios - 如何删除搜索栏中的“放大镜”图标?
问题描述
我尝试使用“search.showsScopeBar = false”隐藏,但它不起作用。
public var searchBar: UISearchBar = {
let search = UISearchBar()
search.showsScopeBar = false
search.barTintColor = .backgroundColor
search.text = "Selecione ou digite "
return search
}()
我想隐藏这个图标Lupa
解决方案
范围栏不是你想象的那样。这是一个自定义的分段控件,可以与搜索栏一起使用,而不是您想要移除的放大镜。
您应该使用func setImage(_ iconImage: UIImage?, for icon: UISearchBar.Icon, state: UIControl.State)
API。您还可以使用它来更改搜索栏中的任何其他图标。
要删除图标,请将图像设置为空图像:
let searchBar: UISearchBar = {
let sb = UISearchBar()
sb.placeholder = "Search here"
let emptyImage = UIImage()
sb.setImage(emptyImage, for: .search, state: .normal)
return sb
}()
或者您可以将图像更改为您喜欢的任何图像。以下将铅笔放在一个圆形图像中:
sb.setImage(UIImage(systemName: "pencil.circle"), for: .search, state: .normal)
推荐阅读
- javascript - React 状态从另一个状态变量(React Select)更新所有先前的元素
- javascript - 从数据库中获取 2 个计数器
- laravel - 即使 vue 中有数据,长度也为 0
- sql - 使用 SQL 将数据从行转换为列
- algorithm - 这是什么类型的排序算法
- python - 发生异常:InvalidArgumentError 您必须使用 dtype 字符串和形状 [1] 为占位符张量“Placeholder”提供一个值
- ruby - docker-compose build failed - http://security.debian.org/dists/jessie/updates/InRelease 的发布文件已过期
- ios - 如何在 UITableViewCell 中添加值
- node.js - 如何在 Node.js 中保存流?
- android - 如何在颤动中返回计划的后台任务列表