ios - Swift - UIToolbar 中的 UISearchBar

标签 ios swift uisearchbar uitoolbar

如何在 Swift 中的工具栏内创建 UISearchBar?如果我使用 Interface Builder,我会收到以下错误:

error: Illegal Configuration: UISearchBar embedded in UIBarButtonItems (仅适用于iPad文档)

是否有解决此问题的 Swift 解决方案?工具栏将仅在 iPad 上可用。

最佳答案

UIToolBar 只是一个自定义的 UIView,因此您有三个选项(我可以看到)用于您的实现:

首先,如果您想将搜索栏固定在工具栏中,请使用以下代码:

var searchBar = UISearchBar(frame: CGRectMake(0, 0, 100, 50))
var myView = UIView(frame: searchBar.frame)
myView.addSubview(searchBar)
var barButtonItem = [UIBarButtonItem(customView: myView)]
toolBar.setItems(barButtonItem, animated: false)

其次,如果您想要屏幕导航栏中的搜索栏,您可以执行以下操作:

let searchBar = UISearchBar(frame: CGRectMake(0, 0, 300, 50)) 
navigationController?.navigationBar.addSubview(searchBar)

第三,如果您需要将工具栏放在其他地方,您可以创建自己的自定义 UIView,它看起来像一个工具栏(横跨屏幕的宽度)并向其添加搜索栏。您甚至可以将您的这个新工具栏设为自定义类,以便在整个程序中重复使用。

干杯!

关于ios - Swift - UIToolbar 中的 UISearchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32477095/

相关文章:

ios - Firebase ios sdk 异步和线程

ios - "Tell Friend"允许选择多个联系人的示例

swift - 如何在swift 4中的 Collection View 中实现字符串数组的分页

ios - 用户移动 map 时快速打印 map 中心

ios - 如何为 UITableView 和 UISearchBar 创建透明背景

uinavigationbar - 如何去除 UINavigationBar 和 UISearchBar 细线

ios - 以多种方式通过 RACSignal 设置按钮的启用属性?

ios - Swift:在另一个 .swift 中使用变量

swift - 在 Swift 中从 sockaddr_in 结构体获取 IP 地址和端口号?

ios7 - 导航栏下方的空白区域,且 displayedSearchBarInNavigationBar = YES