Ios11 UISearchController对表单的演示

Ios11 UISearchController对表单的演示,ios11,uisearchcontroller,Ios11,Uisearchcontroller,我目前正在迁移iPad应用程序中的所有视图控制器,以使用iOS 11标准searchController(在导航项上)。问题是,当它以表单的形式显示在iPad上时,搜索栏会卡在顶部 self.definesPresentationContext = true self.navigationItem.searchController = UISearchController(searchResultsController: nil) 在不禁用“hidesNavigationBarDuringP

我目前正在迁移iPad应用程序中的所有视图控制器,以使用iOS 11标准searchController(在导航项上)。问题是,当它以表单的形式显示在iPad上时,搜索栏会卡在顶部

self.definesPresentationContext = true
self.navigationItem.searchController = UISearchController(searchResultsController: nil)


在不禁用“hidesNavigationBarDuringPresentation”属性的情况下,我是否可以解决此问题?

我已使用以下方法解决此问题:

searchBar.searchFieldBackgroundPositionAdjustment = UIOffset(horizontal: 0.0, vertical: 8.0)

let b: UIBarButtonItem = UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self])
b.setTitlePositionAdjustment(UIOffset(horizontal: 0.0, vertical: 8.0), for: .default)
为了仅在iPad上生效,我将此代码置于以下条件中:

if (UIDevice.current.userInterfaceIdiom == .pad)
然而,我不确定这是否是正确的处理方法