【发布时间】:2018-12-13 19:34:28
【问题描述】:
我花了很多时间寻找解决方案,但找不到任何有效且有效的解决方案。据我了解,由于此属性不可用,我们无法更改清除按钮的色调颜色?另一种解决方案是一起更改清除按钮图像。
https://stackoverflow.com/a/50386999/10733471这个解决方案是最接近的,但问题是它在你第一次启动应用程序并进入搜索栏输入时没有显示清除按钮。
任何人都可以提出一个不涉及使用新图像的有效且有效的解决方案吗?我正在寻找一种解决方案,它采用默认的清除按钮图像并在更改其颜色后重新使用它。
【问题讨论】:
-
我建议遍历所有 UISearchBar 子视图,找到 UIButton 实例并用你需要的东西替换它的图像
-
这可能不是你想要的答案,但是这种请求可能从iOS7开始就存在了。 Apple 解决此问题的唯一方法是提供 API 来更改图像。那为什么不坚持这个选项呢?任何暗示使用 valueForKey 访问私有变量之类的解决方案都比基于官方 API 的解决方案更有可能在未来的 iOS 版本中中断。
-
我刚刚做了一个快速测试:如果您提供图像并为“渲染为”设置选择“模板图像”,它将尊重搜索栏的色调颜色。
-
searchBar.setImage(UIImage(named: "ic_clear"), for: .clear, state: .normal) 这不起作用吗?与您的自定义图像?
标签: ios swift uisearchbar