【问题标题】:Why won't my UIView show a UISearchBar为什么我的 UIView 不显示 UISearchBar
【发布时间】:2016-07-28 17:28:36
【问题描述】:

我想在我的故事板中设置一个 UIView 等于我的UISearchControllerUISearchBar 出于某种原因,这段代码:

@IBOutlet weak var theView: UIView!
override func viewDidLoad() {
    super.viewDidLoad()
    let searchController = UISearchController(searchResultsController: nil)
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search here..."
    searchController.searchBar.sizeToFit()
    theView = searchController.searchBar

}

不会显示搜索栏。但是这个:

@IBOutlet weak var tblSearchResults: UITableView!
override func viewDidLoad() {
    super.viewDidLoad()
    let searchController = UISearchController(searchResultsController: nil)
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search here..."
    searchController.searchBar.sizeToFit()
    tblSearchResults.tableHeaderView = searchController.searchBar
}

会的。为什么? UITableView 标题视图是 UIView 那么为什么它的行为不同?

【问题讨论】:

  • 你没有在theView上调用addSubview
  • @Shubhank 我必须将其添加为子视图吗?我真的很想将其设置为视图。

标签: ios uitableview uiview uikit uisearchbar


【解决方案1】:

不会就您为什么要这样做提供任何建议,但为了帮助解决您的具体问题...

检查...分配后,searchController.searchBar 引用被复制到theView。 searchBar 没有超级视图,所以theView 也没有。然后,您可以将 searchController.searchBartheView 添加回作为子视图,因为它们具有相同的引用。

@IBOutlet weak var theView: UIView!
override func viewDidLoad() {
    super.viewDidLoad()
    let searchController = UISearchController(searchResultsController: nil)
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search here..."
    searchController.searchBar.sizeToFit()
    print("theView0 \(theView.superview)")

    theView = searchController.searchBar
    print("theView1 \(theView.superview)") //notice this is nil now

    view.addSubview(theView) //OR view.addSubview(searchController.searchBar)

    print("theView2 \(theView.superview)")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 2016-12-18
    • 1970-01-01
    • 2018-01-17
    • 2012-09-08
    • 2016-11-12
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多