2011-01-26 15 views
10

Używam API potrząśnięcie tak:Cel C: Wykrywanie poruszenia

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event 
{ 
    if (event.subtype == UIEventSubtypeMotionShake) 
    { 
     [img stopAnimating];  
    } 
} 

Jak wykryć, że potrząsanie zatrzymał?

Odpowiedz

22

Jesteś na dobrej drodze, jednak nie są jeszcze rzeczy, które trzeba dodać do wykrywania drżenie:

Można to sprawdzić poprzez dodanie NSLog do motionBegan lub motionEnded metod iw symulatorze, naciśnij CONTROL + COMMAND + Z

#pragma mark - Shake Functions 

-(BOOL)canBecomeFirstResponder { 
    return YES; 
} 

-(void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:NO]; 
    [self becomeFirstResponder]; 
} 

-(void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:NO]; 
} 

-(void)viewDidDisappear:(BOOL)animated { 
    [self resignFirstResponder]; 
    [super viewDidDisappear:NO]; 
} 

-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event 
{ 
    if (motion == UIEventSubtypeMotionShake) 
    { 
     // shaking has began. 
    } 
} 


-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event 
{ 
    if (motion == UIEventSubtypeMotionShake) 
    { 
     // shaking has ended 
    } 
} 
+1

Idealny! Wielkie dzięki ... – itsame69

+0

canBecomeFirstResponder ma sens. –