iOS - 以编程方式移动UISearchBar

时间:2015-01-19 16:57:22

标签: ios objective-c uisearchbar uisearchdisplaycontroller uisearchcontroller

我目前在普通的UIViewController中有一个UISearchBar。 SearchBar或多或少位于UIView的中间,当我点击输入一些文字时,我的tableView完全重叠了searchBar,我无法点击清除/取消按钮:我不是再看到搜索栏。 当我将我的搜索栏完全移动到我的视图顶部时,它是完美的。但是我用Storyboard做到了。如何以编程方式完成相同的操作?将SearchBar移动到视图的顶部顶部。

非常感谢你的帮助

2 个答案:

答案 0 :(得分:0)

我建议您查看UISearchController(iOS 8+)。来自Apple Docs:

  

UISearchController类定义了一个管理它的接口   与搜索结果一致地显示搜索栏   控制器的内容。

可以找到Apple文档here

如果您坚持手动操作,可以尝试按如下方式设置自动布局约束,将SearchBar始终放在TableView的顶部:

 [self addConstraint:[NSLayoutConstraint constraintWithItem:_searchBar
                                             attribute:NSLayoutAttributeBottom
                                             relatedBy:NSLayoutRelationEqual
                                                toItem:_myTableView
                                             attribute:NSLayoutAttributeTop
                                            multiplier:1.0
                                              constant:0.0]];

答案 1 :(得分:0)

您有3个选项:

  1. [self.view insertSubview:yourSearchBar aboveSubview:yourTableView];

  2. [parentView bringSubviewToFront:yourSearchBar];

  3. [self.view insertSubview:yourSearchBar atIndex:0];

  4. 顺便说一下 - 当您使用故事板创建它们时,来回跳转的所有问题,所以以编程方式更好地进行。