1

我目前在普通的 UIViewController 中有一个 UISearchBar。SearchBar或多或少在UIView的中间,当我点击输入一些文字时,我的tableView与searchBar完全重叠,无法点击清除/取消按钮:我看不到搜索栏了。当我将我的 searchBar 完全移动到我的视图顶部时,它是完美的。但我用故事板来做。我怎样才能以编程方式做同样的事情?将 SearchBar 移动到视图的顶部。

非常感谢你的帮助

4

2 回答 2

0

我建议研究UISearchController(iOS 8+)。来自苹果文档:

UISearchController 类定义了一个接口,该接口管理与搜索结果控制器的内容一致的搜索栏的呈现。

Apple 文档可以在这里找到。

如果您坚持手动进行,您可以尝试设置 Auto Layout 约束,如下所示将 SearchBar 始终放在 TableView 的顶部:

 [self addConstraint:[NSLayoutConstraint constraintWithItem:_searchBar
                                             attribute:NSLayoutAttributeBottom
                                             relatedBy:NSLayoutRelationEqual
                                                toItem:_myTableView
                                             attribute:NSLayoutAttributeTop
                                            multiplier:1.0
                                              constant:0.0]];
于 2015-01-19T17:07:15.090 回答
0

您有 3 个选项:

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

  2. [parentView bringSubviewToFront:yourSearchBar];

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

顺便说一句 - 当您使用情节提要创建视图时,视图来回跳转会导致所有问题,因此最好以编程方式进行。

于 2015-01-19T17:20:55.113 回答