【发布时间】:2015-10-06 16:36:27
【问题描述】:
所以我使用这个项目作为我遇到的问题的示例: https://github.com/ioscreator/ioscreator/tree/master/IOS8SwiftAddSearchTableViewTutorial
我做的两个改变是#1: 让它成为一个通用的应用程序
#2 将 UISplitview 控制器拖入 Interface Builder 并将其设置为根视图控制器,并将现有 UINavigationController 分配为详细视图 segue
在 iPad 上纵向加载它,一切都很好,因为它只显示一列。如果你把它变成横向,然后再试一次,你会发现搜索栏的位置现在是错误的。我已经看到其他几个提到设置 edgesForExtendedLayout = UIRectEdge.None 的相关问题,但这似乎与此不同。有没有其他人遇到过这个问题还是我做错了什么?
【问题讨论】:
-
我不知道你是否使用情节提要设置 UISearchBar 如果是然后设置适当的约束,所以它会显示完美
-
我在代码中添加了 UISearchBar。我尝试过添加约束,但恐怕我对此还不够熟悉。这是我尝试添加的内容: override func viewDidAppear(animated: Bool) { letleadingConstraint = NSLayoutConstraint(item: self.tableView.tableHeaderView!, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.tableView.tableHeaderView! .superview,属性:NSLayoutAttribute.Leading,乘数:1,常数:0) resultSearchController.searchBar.addConstraint(leadingConstraint) }
-
我建议尝试使用情节提要设置有约束的对象,因为与通过代码管理它相比,它是如此简单。去扔一些我知道很容易理解的教程。 Apple 还建议使用故事板来设置对象而非代码的约束。
-
我在 UISearchController 上没有看到任何设置 searchBar 的方法。我读过的所有内容都谈到了子类化,这应该是必要的。
标签: ios uinavigationcontroller interface-builder uisplitviewcontroller uisearchcontroller