在 Swift 中更改 UISearchController 的位置

Posted

技术标签:

【中文标题】在 Swift 中更改 UISearchController 的位置【英文标题】:Change position of UISearchController in Swift 【发布时间】:2017-08-18 17:56:27 【问题描述】:

我有一个具有 UISearchController(以编程方式添加)的 UITableView。 SearchController 被添加到 TableView 的标题中。(屏幕截图 2)。但是,我想在应用打开时首先在屏幕中间有一个搜索视图,并且在用户开始搜索后,TableView 出现并开始显示数据。(截图 1)

我尝试在 Storyboard 中添加 UISearchBar 并将其连接到 UISearchController 但无法直接分配它。

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() 
    super.viewDidLoad()
    // Setup the Search Controller
    searchController.searchResultsUpdater = self
    searchController.dimsBackgroundDuringPresentation = false
    definesPresentationContext = true
    mTableView.tableHeaderView = searchController.searchBar 

【问题讨论】:

【参考方案1】:

1#你可以通过改变tableview的大小和位置来解决这个问题,从tableview开始到屏幕的中间,在用户开始搜索后你可以将frame更改为View Boundary

2# Better => 您可以使用 UItextField 创建自己的搜索控制器并根据需要进行自定义

【讨论】:

我尝试了第一个,但我希望 TableView 不显示,当我隐藏 TableView 时,搜索栏也隐藏了。【参考方案2】:

我通过在 storyboard 中创建 UIView 并在视图中添加 searchcontroller 来解决它。

    在 Storyboard 中创建 UIView 添加 IBOutlet 将 SearchController 添加为 UIView 的子视图。

【讨论】:

以上是关于在 Swift 中更改 UISearchController 的位置的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中更改类型

如何在 Swift 中更改字母间距?

NSTextField,在 Swift 中更改文本

在 Swift 中更改导航栏颜色

在 Swift 中更改 UITextView 的 textColor

为啥我可以在 Swift 中更改 const 数组的成员? [复制]