2012-04-17 2 views
0

애니메이션을 추가하여 왼쪽에서 오른쪽으로 단추를 이동하려고합니다.인스턴스 메서드 beginAnimations : context : 찾을 수 없음

다음 코드

[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

+0

thx Piyush, 나도 똑같은 오류가 발생 했어. –

답변

2

쿼츠 헤더를 가져올 필요가 없습니다.

beginAnimations:context:은 클래스 메소드입니다. UIView의 인스턴스에서 호출하고 있습니다. setAnimationDurationcommitAnimations에도 동일하게 적용됩니다. self.viewUIView으로 바꾸거나 대신 블록 기반 애니메이션을 사용하십시오. 수정

귀하의 코드 :

[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 : 애니메이션 : 찾을 수 없음" –

+0

정확한 코드입니까? 왜냐하면 UIView를 사용했다면 인스턴스 메소드에 대해 말하지 않기 때문입니다. – jrturton

+0

jrturton, 도와 줘서 고마워. 정확한 코드를 사용하고 있습니다. 여기 self.view의 NSLog가있다. > 나는 [self.view animateWithDuration : 1.0 애니메이션을 넣습니다.^{[button setFrame : CGRectMake (10,10, 50, 50)];}]; 나는 또한 UIView * view = (UIView *) self.view를 시도하고 view animateWithDuration : 1.0 애니메이션을 호출했다.^{[setFrame : CGRectMake (10,10, 50, 50)];}]; –

관련 문제