在iOS 11上,搜索栏能够/建议使用navigationItem.searchController = searchController
附加到导航控制器,动画contentOffset
更改似乎有点儿错误,因为搜索栏似乎经常留在原地。之后立即滚动修复它,但看起来很难看。
如果您通过点按状态栏(导致搜索栏可见)一直滚动到顶部,然后在contentOffset
上为UIScrollView
更改设置动画,则可以看到搜索结果酒吧有时会粘在一起,特别是在设备而不是模拟器上(但你仍然可以在模拟器上看到导航栏太高了):
即使是Xcode的一个模板项目,例如“Master Detail”,通过添加搜索控制器然后添加一个按钮来跳回来,也可以很容易地观察到这一点。
@objc func goBackUp(_ sender: Any) {
tableView.setContentOffset(CGPoint(x: 0.0, y: 1200), animated: true)
}
这是一个示例项目,显示:Sample Project
我知道这很可能是一个iOS错误,因为iOS 10及更早版本没有问题,但是在此期间是否有人知道修复?
答案 0 :(得分:0)
iOS 11中的navigationItem上有一个新的searchController属性。
https://developer.apple.com/documentation/uikit/uinavigationitem/2897305-searchcontroller
在iOS 11上,如果未设置navigationItem.hidesSearchBarWhenScrolling = false,则最初可能会隐藏搜索栏,除非用户向下滚动以显示它。如果您将其设置为false,则会显示堆叠在标题所在的下方,而无需用户滚动。