使用Swift在iOS中平滑搜索栏动画

时间:2017-03-01 17:05:44

标签: ios swift animation uisearchbar

如何在iOS 10设置应用中实现流畅的搜索栏动画?我尝试了不同的方法,但似乎都是跳跃和紧张,特别是当编辑结束或按下取消按钮时。是否有一些我缺少的代码或我的代码做错了什么?我怀疑下面的代码与动画跳帧有关:

func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
    searchBar.setShowsCancelButton(false, animated: true)
}

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    self.view.endEditing(true)
    searchBar.setShowsCancelButton(false, animated: true)
}

1 个答案:

答案 0 :(得分:1)

这里有一些事情。

  1. 在所有动画中,如果您没有动画内部调用view.layoutIfNeeded()的最高父视图,则它们更有可能看起来很跳跃。

  2. 如果搜索栏嵌套在任何类型的滚动视图内(这包括tableViews / collectionViews),那么可能符合delayedContentTouches设置。如果是这种情况,请在scrollView内部将其设置为false,看看这是否有帮助。它也可能使滚动变得不那么容易理解,因此它并不总是让事情变得更好。

  3. 动画不会在他们被告知发生的确切时刻发生。它们被放入队列中,然后每隔一段时间就会触发队列中的所有动画。这通常似乎发生在同一时刻,但它可能有所不同,使事情与你期望的不同。

  4. 有很多关于基本iOS内容的好信息here,你可能会发现它们很有用,而且我是Paul Hegarty's Standford iOS Swift course的忠实粉丝。