2011-01-11 7 views
0

사용자가 클릭 할 때 화면에서 벗어날 이미지가있는 전체 화면 버튼 (IB에 배치)이 있습니다. 단추를 클릭 할 때 뭔가를 기록 할 수 있기 때문에 연결 상태가 정상임을 알 수 있습니다. 그러나 UIViews 및 UIImageViews 이동하려면 이전에 사용한이 코드는 작동하지 않습니다.코코아 터치 : 접촉시 애니메이션 버튼

-(void) movePatch : (id) sender { 

    mainImg =[[UIButton alloc] init]; 

//firing up animation 
[UIView beginAnimations: nil context: NULL]; 
//setting animation speed 
[UIView setAnimationDuration:2.0 ]; 

[mainImg setFrame:CGRectMake (-320.0, 0.0, 320.0, 480.0)]; 

//running animations 
[UIView commitAnimations]; 

//release mainImg 
[mainImg release]; 
} 

답변

1

이것이 모두 코드라면 고려해야 할 두 가지 사항이 있습니다.

  1. (부적절 이름, 그것은 버튼입니다 becuase)에 mainImg 뷰에 배치되지 않는다 ([self.view의 addSubview : mainImg]) 당신이 해제한다고 생각하지 않습니다

  2. 커밋 직후. 나는 당신이 애니메이션 'didStopSelector'에서 이것을해야하고, 따라서 그것을 ivar로 만들어야한다고 생각한다.

+0

감사합니다. MiRAGe. 버튼이 IB와 내 .h 파일에 IBOutlet NSButton * mainImg로 추가되었지만 제안 된대로 뷰에 추가해야합니까? CA가 그 위치를 옮길 기회가 있기 전에 그것을 놓아 버리는 것이 여기 있다고 생각하십니까? (나는 명명법이 꺼져 있음을 알고 있지만, 가장 잘 작동하는 것을보기 위해 여러 가지 시나리오를 사용하고 있었고 이름을 바꾸는 데 지쳤다.) – PruitIgoe

+0

IBOutlet으로 가지고 있다면 그 함수에서 생성하고 파괴하지 마십시오. 그 코드없이 작동해야합니다. dealloc 또는 viewDidUnload에서 해제하십시오. – Jake