【发布时间】:2018-11-19 13:23:17
【问题描述】:
在视频中,有点难以理解发生了什么,所以我会尝试解释一下。 https://youtu.be/yOrCJB9yZlg
我的根视图中有UIViewController 和UITableView。通过Autolayout 绑定(绑定方式没有区别:绑定到 SuperView 或绑定到 SafeArea)。
SearchBar 添加如下:
let search = UISearchController(searchResultsController: nil)
self.navigationItem.searchController = search
当我慢慢滚动表格时,大导航栏和紧凑导航栏之间的过渡,然后显示进出searchBar的动画太快了。搜索栏跳入/跳出导航栏而不是平滑打开/关闭;导航栏过渡是在大和紧凑两种状态之间跳转,当您在屏幕上缓慢移动手指时,不会顺利通过中间半开状态,例如在系统应用程序(邮件、电话、消息、联系人等)中。
我从一个空项目中做了一个例子来演示这个问题;导航栏逻辑没有任何变化,或者根本没有任何逻辑。只有两个新的 VC 和这种奇怪的行为。
如果我创建 xCode 的“Master-Details”项目示例并将UISearchController 添加到其中,它将正常工作。我认为是因为他们在里面使用了UITableViewController 而不是UIViewController + UITableView。
这种行为的原因是什么以及如何解决?
【问题讨论】:
-
你的问题有点混乱。您的问题是搜索关闭/打开太快,而不是像系统应用程序那样流畅吗?
-
是的,完全正确。不知道怎么解释清楚。
标签: ios swift uinavigationbar uisearchbar uisearchcontroller