2017-05-17 74 views
1

我做了很多搜索并阅读了许多问题/答案,但我仍然无法在导航栏下面编写静态搜索栏...(换句话说,粘在导航栏搜索栏)在导航栏下方添加“静态”搜索栏

,我想这样的事情:

enter image description here

但我不知道该怎么做。

这是我写的代码:

let searchBar = UISearchBar() 
     searchBar.placeholder = "Search" 
     searchBar.frame = CGRect(x: 0, y: 0, width: (navigationController?.view.bounds.size.width)!, height: 64) 
     searchBar.barStyle = .default 
     searchBar.isTranslucent = false 
     searchBar.barTintColor = UIColor.red 
     searchBar.backgroundImage = UIImage() 
     view.addSubview(searchBar) 

当我向上滚动,搜索栏是不是粘在的导航栏。我想为这两部分分配一个块。

+0

你应该使用一些约束将其固定在顶部,对吗? – paper1111

+0

您是否使用搜索栏的自动布局? –

回答

0

enter image description here

按照以下步骤上的故事板您的ViewController从Interface Builder中实现静态UISearchBarUINavigationBar

  1. 拖动UISearchBar

  2. 设置约束UISearchBar

    • 领导
    • 尾随
    • 固定高度
+0

问题是我必须在代码中执行:/ 第二个问题是我在一个TableViewController中.... – KevinB

0

在你的界面生成器(在故事板视图控制器),阻力search bar并放在所需的地方。

然后设置约束如top,leading,trailingfixed height

,你将能够看到search bar棍子navigation bar

+0

问题是我必须在代码中执行它:/ 第二个问题是我我在一个TableViewController .... – KevinB

0

我建议你检查你的自动版式&引脚4约束像图像下方 我希望它能解决你的问题。

enter image description here

+0

问题是,我必须在代码中:/ 第二个问题是,我在一个TableViewController .... – KevinB

0

如果我收到了你的问题是正确的,要滚动屏幕向上和向下,看看你的搜索栏的顶部呢? 如果它是你想要的,你应该使用顶部,领先的尾部约束将你的searchBar固定到顶部。你应该添加tableView或scrollView到你的viewcontroller。并把它钉在最下面,领先,跟踪到超视图。并在tableView(或scrollView)和searchbar之间添加垂直约束。

0

只需在下面添加这些行:视图。addSubview(搜索栏)

searchBar.translatesAutoresizingMaskIntoConstraints = false 
    searchBar.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 0.0).isActive = true 
    searchBar.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: 0.0).isActive = true 
    searchBar.topAnchor.constraint(equalTo:self.topLayoutGuide.bottomAnchor, constant: 0.0).isActive = true 
0

你应该searchcontroller并添加搜索栏到搜索控制器,如果你不喜欢这个搜索栏添加到导航栏搜索时,给委托和数据源到搜索栏

self.searchbar.delegate = self 
self.searchbar.datasource = self