在UISearchController
界面的主人身上显示UISplitViewController
时,iOS 8/9上的自动布局无法正常工作。
要重现此问题:
var searchController: UISearchController!
添加到MasterViewController
在viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
definesPresentationContext = true
tableView.tableHeaderView = searchController.searchBar
在iPhone 6 Plus或模拟器上运行应用程序
现在您可以看到UISearchBar
不对齐。
我们可以在视图调试器中验证这一点:
如果您点击“显示剪辑内容”按钮,则此问题更加明显:
不只是UISearchBar
未对齐,而是整个MasterViewController。
我也在原生邮件和消息应用中重现了这个问题:
有没有人找到解决这个特定问题的方法?
答案 0 :(得分:1)
到目前为止,我找到的唯一可接受的解决方案是实现UISplitViewControllerDelegate
方法:
func splitViewController(splitViewController: UISplitViewController,
collapseSecondaryViewController secondaryViewController: UIViewController,
ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true
}
不要忘记设置拆分视图控制器的委托。
虽然这可能不是理想的折叠行为,但它似乎阻止了自动布局问题。