ios - UISearchBar 书签图标未隐藏在滚动条上
问题描述
我UISearchBar
在导航栏中集成了以下代码:
// not needed because it's default
navigationItem.hidesSearchBarWhenScrolling = true
self.navigationItem.searchController = searchController
我还添加了一个自定义书签图标,如下所示:
searchController.searchBar.setImage(icon, for: .bookmark, state: .normal)
searchController.searchBar.showsBookmarkButton = true
searchController.searchBar.layoutIfNeeded()
这会在 iOS 11.4 和 12.1.4 中产生这种奇怪的外观
似乎文本字段没有剪辑图标,也没有像占位符和搜索图标那样应用淡入淡出动画。
你们看到我这边有什么错误吗?如果没有,有人可以重现吗?然后这是一个错误,我将提交雷达。
解决方案
好的,我通过这样做解决了这个问题:
searchController.searchBar.allSubviews.forEach { $0.clipsToBounds = true }
使用这个扩展来获取所有嵌套的子视图:
extension UIView {
var allSubviews: [UIView] {
return self.subviews.reduce([UIView]()) { $0 + [$1] + $1.allSubviews }
}
}
但这有点老套,所以其他解决方案值得赞赏:)
推荐阅读
- apache - AIX 上的 Apache Tomcat
- .net - Gitlab Octopus 部署集成
- javascript - 如何根据复选框状态禁用/启用提交按钮?
- java - While循环中的Java TimerTask
- python - 使用 Xarray 和 Numpy 数组进行多处理
- ios - 在 iOS 12 中将 UIColours 数组归档和取消归档到 NSUserDefaults?
- java - 在桌面java上获取设备像素比
- c# - Asp.Net Core Swagger / FromForm ///(三斜杠)评论没有被拾起?
- qt - 使用 QAbstractItemModel 作为 C++ 中的 Q_PROPERTY 和 READ WRITE
- angular - 有没有办法将验证器设置为表单数组中的字段?