2012-06-29 2 views
0

가능한 중복 :
How do i put a void(shake gesture) inside a IBAction(button)?IBAction에 무효 코드를 넣는 방법은 무엇입니까?

나는 애플 리케이션을 만드는에서 초보자와 나는 현재 애니메이션 프로젝트를 진행하고있다. 지금까지 나는 단추가 있고 사용자가 단추를 누르면 애니메이션이 재생되고 끝납니다. 하지만 나는 도움이 필요합니다. 왜냐하면 나는 그가 프레스를 한 후에 아이폰을 흔들어야하기 때문입니다. 이것이 정확히 필요합니다. 사용자가 누를 때 uilabel이 흔들리는 것을 표시하면 일단 사용자가 iPhone을 흔들면 uilabel이 사라지고 애니메이션이 재생됩니다. (IBAction를) startanimation {

animation.animationImages= [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"Frame0.png"], 
          [UIImage imageNamed:@"Frame1.png"], 
          [UIImage imageNamed:@"Frame2.png"], 
          [UIImage imageNamed:@"Frame3.png"], 
          [UIImage imageNamed:@"Frame4.png"], 
          [UIImage imageNamed:@"Frame5.png"], 
          [UIImage imageNamed:@"Frame6.png"], 
          [UIImage imageNamed:@"Frame7.png"], 
          [UIImage imageNamed:@"Frame8.png"], 
          [UIImage imageNamed:@"Frame9.png"], 
          [UIImage imageNamed:@"Frame10.png"], 
          [UIImage imageNamed:@"Frame11.png"], 
          [UIImage imageNamed:@"Frame12.png"], 
          [UIImage imageNamed:@"Frame13.png"], 
          [UIImage imageNamed:@"Frame14.png"], 
          nil]; 

[animation setAnimationRepeatCount:1]; 
animation.animationDuration = 1; 
[animation startAnimating]; 


button.hidden = 1; 
animation.hidden = 0; 
Menu.hidden = 0; 
replay.hidden = 0; 

}

이 내가 넣어 계획 무엇인가 - 을 :

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
if (event.subtype == UIEventSubtypeMotionShake) 

내가 총 초보자 오전 주셔서 감사합니다 여기에 지금까지 무엇을 지시 사항을 설명해주세요, 감사합니다! :) IBAction를하고 무효가 목표 - C에서 다소 동일하기 때문에

+0

그리고 무엇이 문제입니까? – Linuxios

+0

나는 Ibaction 안에 void를 넣을 수 없다. 버튼을 누른 후에 만 ​​동작에 반응하는 애니메이션을 얻는 방법을 모르겠다. :) – Stevenp

+0

이미 말했지. IBAction에 "무효화"한다는 것은 무엇을 의미합니까? 그건 아무 의미도 없다. – Linuxios

답변

0

당신이 "는 IBAction를에 공백을 넣어"로 [self nameOfTheVoid];

-(IBAction)youraction { 

    //some code in here 
    [self motionEnded]; 
} 
1

당신은이 문제를 해결할 수와 무효를 호출 할 수 있습니다.

그러나 사용자가 버튼을 누르면 사용자가 레이블 을 넣고 사용자가 라벨을 눌렀 음을 나타내는 BOOL 플래그를 설정합니다.

motionEnded:withEvent 메서드 내에서 애니메이션을 시작하기 전에 if (event.subtype == UIEventSubtypeMotionShake && flag)을 확인하십시오.

샘플 코드

여기에 거짓 NO /에 플래그를 초기화하는 것을 잊지 마세요 : 나는 당신의 .H 파일이

@interface MyController: UIViewController { 
    BOOL buttonPressed; 
} 
@end 

같은 무슨이다 보이는

가정 .m 파일에 있어야합니다.

- (void)viewDidLoad { 
    buttonPressed = NO; 
} 

- (IBAction)buttonPress:(id)sender { 
    buttonPressed = YES; 
    // show label 
} 

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (event.subtype == UIEventSubtypeMotionShake && buttonPressed) { 
    // start animation 
    } 
} 
+0

는 36 초 옆에 나를 줬다! – Dima

+1

나는 다소기만 당했다. 나는 게시 한 후 그것에 대해 생각해 보았다. "OP는 그가 초보자이고, 일부 코드 샘플은 해를 끼치 지 않을 것이라고 말했다." :-) –

+0

아, 지금 내가 그것을 시도 할 것입니다, 어떻게 레이블에 BOOl 플래그를 설정합니까? – Stevenp

0

버튼에 연결된 함수를 작성하면 BOOL buttonPressed과 같은 플래그가 설정되고 사용자에게 전화기를 흔들도록 라벨이 표시됩니다.

buttonPressed이 예인 경우 해당 레이블을 숨기고 애니메이션을 수행 한 다음 다시 buttonPressed을 NO로 설정하면 확인할 수 있습니다.

관련 문제