iOS 13 UISearchBar 外观和行为
Posted
技术标签:
【中文标题】iOS 13 UISearchBar 外观和行为【英文标题】:iOS 13 UISearchBar appearance and behaviour 【发布时间】:2019-09-13 16:52:23 【问题描述】:我的UISearchBar
设置如下:
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false // Allow user to tap on results
searchController.searchBar.placeholder = "Search patients" // Placeholder
searchController.searchBar.barStyle = .blackOpaque
searchController.searchBar.tintColor = colors.text // Cancel button tint
navigationItem.searchController = searchController // Set the searchController
navigationItem.hidesSearchBarWhenScrolling = true // Auto-hide search when user scrolls
这是它在 ios 12 上的外观:
与 iOS 13:
iOS 13 有哪些变化?我尝试过不同的barStyles
,并将.isTranslucent
设置为false - 两者都没有效果。明暗模式也不会改变任何东西。
另一个变化是隐藏搜索栏 - 在 iOS 12 上,如果我向上滚动一点,搜索栏会隐藏(无论表格是否已填充)。在 iOS 13 中,一旦出现搜索栏(即用户向下滑动),就无法再次隐藏。有谁知道这个问题的解决方法吗?
【问题讨论】:
你试过 searchBar.searchBarStyle = .prominent 吗?? @souvickcse 刚试过,可惜没啥区别 我几乎放弃了大标题并搜索 iOS 13。这是一个巨大的集群。 :( 我在半透明的搜索栏上很难获得与 iOS 13 相同的外观。我最终得到了 60 行代码,用我自己的替换了原来的背景视图。 @fl034 看看我自己的答案 【参考方案1】:我遇到了类似的问题。我不知道为什么在当前的 iOS 13 中会发生这种情况并且在旧版本中可以正常工作。但是我通过将此功能添加到您的 searchBar 找到了解决方案。
if #available(iOS 13.0, *)
searchBar.searchTextField.backgroundColor = UIColor.white
修复后预览:
【讨论】:
searchBar.backgroundColor
适用于低于 13 的 iOS 系统吗?【参考方案2】:
如何将searchBarStyle
用作default
并更改searchTextField
背景颜色?
if #available(iOS 13.0, *)
searchBar.searchBarStyle = .default
searchBar.searchTextField.backgroundColor = UIColor.black.withAlphaComponent(0.1)
【讨论】:
【参考方案3】:对于像AppDelegate
这样的全局设置:
if #available(iOS 13, *)
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = .anyColor
【讨论】:
UISearchBar.appearance().searchTextField.backgroundColor = .anyColor
在这里不起作用的任何原因?【参考方案4】:
searchController.searchBar.searchTextField.backgroundColor = UIColor.black
将这项工作作为一种解决方法。选择器是 iOS 13 中的新功能。
我已经提交了关于反馈助手的报告,因为我确实认为这是意外行为。
【讨论】:
【参考方案5】:iOS 13+。
searchController.searchBar.searchTextField.backgroundColor = UIColor.white
【讨论】:
以上是关于iOS 13 UISearchBar 外观和行为的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS7 中使用 UISearchBar 将子视图添加到 tableHeaderView 行为不端