iOS - 以编程方式移动 UISearchBar
Posted
技术标签:
【中文标题】iOS - 以编程方式移动 UISearchBar【英文标题】:iOS - Move UISearchBar programmatically 【发布时间】:2015-01-19 16:57:21 【问题描述】:我目前在普通 UIViewController 中有一个 UISearchBar。 SearchBar或多或少在UIView的中间,当我点击输入一些文字时,我的tableView与searchBar完全重叠,无法点击清除/取消按钮:我看不到搜索栏了。 当我将我的 searchBar 完全移动到我的视图顶部时,它是完美的。但我用故事板来做。我怎样才能以编程方式做同样的事情?将 SearchBar 移动到视图的顶部。
非常感谢您的帮助
【问题讨论】:
【参考方案1】:我建议查看UISearchController
(ios 8+)。来自 Apple 文档:
UISearchController 类定义了一个接口,用于管理 显示与搜索结果一致的搜索栏 控制器的内容。
可以在 here 找到 Apple 文档。
如果您坚持手动进行,您可以尝试设置 Auto Layout 约束,如下所示将 SearchBar 始终放置在 TableView 的顶部:
[self addConstraint:[NSLayoutConstraint constraintWithItem:_searchBar
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:_myTableView
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:0.0]];
【讨论】:
我建议您了解 AL。 :) 您至少可以将它用于这一屏幕。如果您不想使用 AL,请查看UISearchController
。【参考方案2】:
您有 3 个选项:
[self.view insertSubview:yourSearchBar aboveSubview:yourTableView];
[parentView bringSubviewToFront:yourSearchBar];
[self.view insertSubview:yourSearchBar atIndex:0];
顺便说一句 - 当您使用情节提要创建视图时,视图来回跳转会导致所有问题,因此最好以编程方式进行。
【讨论】:
您好,感谢您的帮助。但是这 3 个选项都没有将 searchBar 带到 UIView 的顶部...以上是关于iOS - 以编程方式移动 UISearchBar的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式将 UISearchBar 添加到普通 ViewController 中以编程方式添加的 UITableView
如何在 iOS 中为 UISearchBar 设置最近的搜索历史下拉列表
以编程方式将 UISearchBar 添加到 UITableView 不起作用