我目前在普通的 UIViewController 中有一个 UISearchBar。SearchBar或多或少在UIView的中间,当我点击输入一些文字时,我的tableView与searchBar完全重叠,无法点击清除/取消按钮:我看不到搜索栏了。当我将我的 searchBar 完全移动到我的视图顶部时,它是完美的。但我用故事板来做。我怎样才能以编程方式做同样的事情?将 SearchBar 移动到视图的顶部。
非常感谢你的帮助
我目前在普通的 UIViewController 中有一个 UISearchBar。SearchBar或多或少在UIView的中间,当我点击输入一些文字时,我的tableView与searchBar完全重叠,无法点击清除/取消按钮:我看不到搜索栏了。当我将我的 searchBar 完全移动到我的视图顶部时,它是完美的。但我用故事板来做。我怎样才能以编程方式做同样的事情?将 SearchBar 移动到视图的顶部。
非常感谢你的帮助
我建议研究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]];
您有 3 个选项:
[self.view insertSubview:yourSearchBar aboveSubview:yourTableView];
[parentView bringSubviewToFront:yourSearchBar];
[self.view insertSubview:yourSearchBar atIndex:0];
顺便说一句 - 当您使用情节提要创建视图时,视图来回跳转会导致所有问题,因此最好以编程方式进行。