iOS解决把searchController.searchBar放在navigationItem.titleView上出现闪出灰色条的bug

两年前没解决的bug终于解决了。。。。
刚出UISearchController的时候,我就遇到需求把searchController放在nav的titleView上。出现了view出现的时候会闪现灰色条的bug,当时赶时间就让产品妥协改到了别的地方
这次又有这需求。。就花心思解决了一下
出现的灰色view是UISearchBarBackground ,于是remove就好了
为什么是remove,而不是设置hidden呢,因为我发现,那个view消失后是真的消失了。并且设置hidden是没有用的。

for views in searchController.searchBar.subviews {
            printLog(views)
            for view in views.subviews {
                printLog(view)
                if view.isMember(of: NSClassFromString("UISearchBarBackground")!) {
                    view.removeFromSuperview()
                }
            }
        }

navigationItem.titleView = searchController.searchBar

推荐阅读更多精彩内容