2015-09-28 45 views
1

我希望有人能夠幫助我理解爲什麼我的tvOS動畫沒有運行。用tvOS實現基本的動畫

在我的代碼,我有這樣的功能:

func testAnimation() { 
    clockLabel.alpha = 0.0 
    UIView.animateWithDuration(1.0, animations: { 
     self.clockLabel.alpha = 1.0 
    }) 
} 

我我viewDidLoad()內調用從testAnimation(),但沒有動畫曾經似乎發生。

我已經測試過幾種不同類型的動畫,從位置到不透明度等,但似乎並沒有動畫在模擬器中運行。

在這個時候,我的應用程序沒有焦點。我試圖做的是加載一個空白UIView與淡入中間的標籤。

+0

請在viewDidLoad中分享你的代碼。 – nzs

回答

4

你試圖動畫您已經顯示UILabel之前的錯誤。將您的動畫從viewDidLoad()移至viewDidAppear()

+0

是的。這爲我修好了。奇怪的是,它在iOS應用上表現不同,但也許這是值得關注的問題。不過謝謝你,這已經解決了我的問題! – ZbadhabitZ

0

我可以證實這種行爲,因爲這也發生在我身上。我所做的是將延遲設置爲0.1(afterDelay :),並且它「足夠好」

另一方面,DID的實際工作是爲我的視圖設置轉換。例如。 (objc雖然):

CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.5,0.5); 
     [UIView animateWithDuration: 0.5 animations:^{ 
     _myView.transform = scaleTransform; 
    } completion: nil] 

也許是在tvOS

+0

我不會推薦這個。如果系統加載後顯示視圖長於0.1,會發生什麼情況? –

0

嘗試使用的UIView動畫,像這樣(SWIFT):

clockLabel.alpha = 0 
    UIView.animateWithDuration(0.5, delay: 0.0, options: .Linear, animations: { 
    self.clockLabel.alpha = 1.0 

    }, completion: { finished in 
    // you may add some code here to make another action right after the animation end, or just delete this comment :) 
    }) 

這工作就在我們身邊。