4

以下のコードを使用して検索バーの表示/非表示をアニメーション化しようとしています (検索バーは左から来て、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
            })
4

1 に答える 1