2012-07-10 25 views
1

我一直在試圖建立一個徽標的輸入效果,從屏幕頂部到底部,並保留在那裏,當我的應用程序加載一個新的視圖。我已經看到所有使用NSTimer反射圖像的教程,但是一旦我的圖標觸到底部,它就需要退出。我將閱讀動畫塊代碼,以查看我的解決方案是否駐留在那裏。如何將圖像從屏幕頂部移動到底部並讓它停留在Xcode/iOS中?

道歉我是一個新人,非常感謝您的幫助。

回答

2

設置標誌幀到頂部,然後:

[UIView beginAnimations: @"moveLogo" context: nil]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationCurve: UIViewAnimationCurveLinear]; 
logoToMove.frame = CGRectMake(final frame at the bottom); 
[UIView commitAnimations]; 

logoToMove是您的標誌,給它一個插座,並把它掛在廈門國際銀行。 所以你將設置初始幀和動畫 - 最後一幀。動畫將完成剩下的工作。 如果您不喜歡,請將UIViewAnimationCurveLinear更改爲所需的值。也是加快或減慢運動的持續時間。

+0

偉大的建議 - 非常感謝。 我試圖找出CGRectMake中的正確參數(假設CGRectMake(10,10,300,400)意味着我從iOS設備屏幕的左上角開始,移動到右側10,向下移動10(開始指向矩形) - 然後向右移動300多個,向下移動到底部400,形成完整矩形的對角。我看到奇怪的動畫有時會向上移動,有時會向下移動...要去嘗試UIViewAnimationCurveLinear – JimCSanJose 2012-07-11 03:16:47

+0

後續問題Teodor - 設置初始幀我會在界面生成器或代碼中執行嗎?如果在代碼中我會使用類似logoToMove.origin.y = self.view .bounds.size.height ?? – JimCSanJose 2012-07-11 07:38:59

+0

夥計們,它比你想象的要容易,首先在任何你想要的地方以編程方式設置框架,這將是起點,然後使用上面的代碼使對象移動到最終點你在第5行中定義:logoToMove.frame = bla-bla-bla)。就這樣。而user1514009,你應該讀一下CGRectMake。 – 2012-07-11 12:25:22

0

要在動畫的最後刪除的視圖,最簡單的方法是使用塊:

logoToMove.frame = topRect; 

[UIView animateWithDuration:duration 
       animations:^{ 
        logoToMove.frame = bottomFrame; 
       } 
       completion:^(BOOL finished) { 
        [logoToMove removeFromSuperview]; 
       } 
]; 

做這樣說,這使您能夠控制動畫,並在做什麼,一旦它在已經完工一個簡單的方法

相關問題