@Brad Larsonの答えはほとんどすべてをカバーしているので、詳細についてはそれを参照してください。ただし、彼の回答は、NSNotifications を使用して機能する LeapListener プロトコルの使用方法を示しています。
NSNotificationCenter :p が気に入らない場合、または更新がどのスレッドで発生するかを気にしない場合は、 の使用方法の例を次に示しますLeapDelegate
。
@interface MyClass () < LeapDelegate >
@property (strong, nonatomic) LeapController *controller;
@end
- (void)startLeapMotion
{
if (!_controller) {
_controller = [[LeapController alloc] initWithDelegate:self];
//
// Could also be...
//
// [_controller addDelegate:self];
// [_controller removeDelegate];
}
}
- (void)onInit:(LeapController *)controller
{
NSLog(@"Init");
}
- (void)onConnect:(LeapController *)controller
{
NSLog(@"Connect");
// Some settings that came bundled with the Leap sample project. Use if needed
//
// [controller setPolicyFlags:LEAP_POLICY_DEFAULT];
// [controller enableGesture:LEAP_GESTURE_TYPE_CIRCLE enable:YES];
// [controller enableGesture:LEAP_GESTURE_TYPE_KEY_TAP enable:YES];
// [controller enableGesture:LEAP_GESTURE_TYPE_SCREEN_TAP enable:YES];
// [controller enableGesture:LEAP_GESTURE_TYPE_SWIPE enable:YES];
}
- (void)onFocusGained:(LeapController *)controller
{
NSLog(@"Focus Gained");
}
- (void)onFrame:(LeapController *)controller
{
// Write awesome code here!!!
NSLog(@"Frame");
}
- (void)onFocusLost:(LeapController *)controller
{
NSLog(@"Focus Lost");
}
- (void)onDisconnect:(LeapController *)controller
{
NSLog(@"Disconnected");
}
- (void)onExit:(LeapController *)controller
{
NSLog(@"Exited");
}