簡體   English   中英

UiView.animateWithDuration不動畫Swift

[英]UiView.animateWithDuration Not Animating Swift

我試圖使用下面的代碼動畫顯示/隱藏搜索欄(搜索欄應該從左邊開始,並在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。 我已經看到了其他解決方案,但它們都不適合我。 請幫忙......

更新 :它使用下面的代碼。 但是,它使用了UIViewAnimationOptionCurveEaseInOutTransitionNone默認動畫選項

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
            })

在animateWithDuration之前,將XPosition設置為-200,將YPosition設置為-200。

像Daniel Suggested一樣,你需要從1.0之外的其他東西改變alpha,以便看到它“淡入”。

你在使用autolayout嗎? 如果是,您可能希望為約束而不是框架設置動畫。

最后,您確定已正確連接搜索欄嗎?

編輯:PS,我會將持續時間保持為3.0或5.0。 10.0會花費很長時間,可能會讓你認為它沒有做任何事情,因為需要多長時間。 將其設為3.0或5.0(最大)僅用於測試,然后降低到您想要的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM