以下のコードを使用して検索バーの表示/非表示をアニメーション化しようとしています (検索バーは左から来て、1〜2秒以内に右に展開する必要があります)。しかし、アニメーションせず、いくら時間を置いてもすぐにsearchBarが表示されます。私は次のことに気付きました:
- 期間は尊重されません
- 遅延さえも尊重されない
アニメーションは発生していません。コンポーネントはすぐに表示されます
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { //code to get selected value... //Hide the collection view and show search bar UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: { self.searchBar.hidden = false self.searchBar.frame = CGRectMake(0, 0, 300, 44) //This doesn't work either }, completion: { (finished: Bool) in return true }) }
Xcode 7、iOS 8、Swift 2.0 を使用しています。私は他の解決策を見てきましたが、どれもうまくいきません。親切に助けて...
更新:以下のコードで動作しました。ただし、 と のデフォルトのアニメーション オプションを使用UIViewAnimationOptionCurveEaseInOut
しました。TransitionNone
UIView.animateWithDuration(0.7,
animations: {
self.searchBar.alpha = 1.0
self.searchBarRect.origin.x = self.searchBarRect.origin.x + 200
self.searchBar.frame = self.searchBarRect
},
completion: { (finished: Bool) in
return true
})