2017-03-01 84 views
0

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

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

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

回答

1

这里有几件事。

  1. 在所有的动画,他们更有可能看起来神经兮兮的,如果你没有调用view.layoutIfNeeded()动画内的最高父视图。

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

  3. 动画不会发生在他们被告知发生的时刻。他们被放入一个队列中,然后每隔一段时间都会触发队列中的所有动画。这通常看起来发生在同一时刻,但它可能会有所不同,使事情不同于预期。

有很多很好的信息here基本iOS的东西,你可能会发现有用的,我的Paul Hegarty's Standford iOS Swift course一个巨大的风扇。