• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 搜索栏在点击时隐藏

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:20:01 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

您好,我在 UIView 上添加了搜索栏。当我运行我的代码时,我可以看到我的搜索栏,但是当我在搜索栏中点击它时它会隐藏起来,当我再次点击屏幕上的某个地方时它是可见的。我现在没有遇到这个问题。请帮忙。

 var searchView:UIView = {
        var search = UIView()
        search.translatesAutoresizingMaskIntoConstraints = false
        search.backgroundColor = UIColor.gray
        return search
    }()

   lazy var searchController : UISearchController = {
        var searchController = UISearchController(searchResultsController: nil)
        //searchController.searchResultsUpdater = self
        searchController.hidesNavigationBarDuringPresentation = false
        searchController.searchBar.barTintColor = UIColor.gray
        searchController.searchBar.layer.borderWidth = 1
        searchController.searchBar.layer.borderColor = UIColor.gray.cgColor
        //searchController.dimsBackgroundDuringPresentation = false
        searchController.definesPresentationContext = true
        searchController.searchBar.sizeToFit()
        searchController.searchBar.translatesAutoresizingMaskIntoConstraints = false
        return searchController
    }()
func setUpView(){
    view.addSubview(searchView)
    searchView.addSubview(searchController.searchBar)

    searchView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    searchView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    searchView.topAnchor.constraint(equalTo: view.topAnchor,constant:64).isActive = true
    searchView.heightAnchor.constraint(equalToConstant: 65).isActive = true

    searchController.searchBar.leftAnchor.constraint(equalTo: searchView.leftAnchor).isActive = true
    searchController.searchBar.rightAnchor.constraint(equalTo: searchView.rightAnchor).isActive = true
    searchController.searchBar.topAnchor.constraint(equalTo: searchView.topAnchor,constant:10).isActive = true
    searchController.searchBar.widthAnchor.constraint(equalTo: searchView.widthAnchor).isActive = true
    }

我也在 ViewDidLoad()-:

中给出了这一行
self.extendedLayoutIncludesOpaqueBars = true



Best Answer-推荐答案


我发现 UISearchController 的 searchBar 在设置 translatesAutoresizingMaskIntoConstraints = false 时效果不佳。作为一种解决方法,我将搜索栏嵌入到具有所需约束的占位符 View 中:

let searchBarPlaceholderView = UIView()
searchBarPlaceholderView.addSubview(searchController.searchBar)
searchBarPlaceholderView.translatesAutoresizingMaskIntoConstraints = false
searchBarPlaceholderView.heightAnchor.constraint(equalToConstant: 56).isActive = true
stackView.addArrangedSubview(searchBarPlaceholderView)

注意,searchController.searchBar 的 translatesAutoresizingMaskIntoConstraints 属性设置为 true。

关于ios - 搜索栏在点击时隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45223386/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap