2012-04-17 39 views
0

我想添加動畫,從左到右移動我的按鈕。實例方法begin動畫:上下文:找不到

我已經添加以下代碼

[self.view beginAnimations:nil context:nil]; 
[self.view setAnimationDuration:1.0f]; 
[button setFrame:newFrame]; 
[self.view commitAnimations]; 

但是當我建,我看到警告「實例方法beginAnimations:背景:未找到」

我已經加入QuartzCore框架,包括

#import <QuartzCore/CoreAnimation.h> 

有人可以告訴我缺少什麼嗎?

謝謝

+1

#import 嘗試告訴我 – Hector 2012-04-17 07:01:33

+0

thx Piyush,我確實嘗試過,得到相同的錯誤。 – 2012-04-17 08:09:28

回答

2

導入石英頭是沒有必要的。

beginAnimations:context:是一類方法。你在UIView的一個實例上調用它。這同樣適用於setAnimationDurationcommitAnimations。將self.view替換爲UIView,或者更好地使用基於塊的動畫。

您的代碼,修正:

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0f]; 
[button setFrame:newFrame]; 
[UIView commitAnimations]; 

基於塊的(IOS4.0和更高版本):

[UIView animateWithDuration:1.0 animations:^{[button setFrame:newFrame];}]; 

根據您的意見,你錯過我的觀點。這些方法是方法。您需要直接打電話給UIView - 。不是self.view,它是UIView的實例。看看上面的代碼行 - 消息正在發送到UIView。使用上面的確切代碼行。如果您喜歡,請複製並粘貼。我沒有使用UIView作爲「插入視圖對象在這裏!」的佔位符,它是你必須使用的代碼。

+0

thx jrturton,我用[UIView animateWithDuration:1.0動畫:^ {[button setFrame:newFrame];}];但仍然顯示錯誤「實例方法animateWithDuration:動畫:找不到」 – 2012-04-17 08:10:46

+0

你確定這是你的確切代碼?因爲如果你使用UIView,它不會告訴你實例方法。 jrturton, – jrturton 2012-04-17 08:29:32

+0

,非常感謝你的幫助。我正在使用確切的代碼。這裏是self.view的NSLog >我把[self.view animateWithDuration:1.0動畫:^ {[button setFrame:CGRectMake(10,10,50,50)];}];我也嘗試過UIView * view =(UIView *)self.view並調用[view animateWithDuration:1.0動畫:^ {[button setFrame:CGRectMake(10,10,50,50)]];}]; – 2012-04-17 10:19:35

相關問題