2016-08-31 19 views
0

私はクレイジーのように見ています。ボリュームボタンの長押しと短押し(スナップチャット、短押しの写真、長押しの録画ビデオなど)でカスタムアクションを実行する必要がありますが、失敗しました。ボリュームボタンの長押しと短押しの検出 - iOS

私はhttps://github.com/jpsim/JPSVolumeButtonHandler を使用しました。ボリュームボタンの押下イベントを検出できました。しかし、非常に頑張った後、長いプレスと短いプレスを検出するのに失敗しました。

も、私はこの上の助けを必要としてください私のコード

//Volume button handler 

self.volumeButtonHandler = [JPSVolumeButtonHandler volumeButtonHandlerWithUpBlock:^{ 
     // Volume Up Button Pressed 
     [self onVolumeUp]; 
    } downBlock:^{ 
     // Volume Down Button Pressed 
    }]; 

-(void)onVolumeUp { 
    if(self.volButtonTimer) { 
     secondsElapsed = 1; //To detect long press 
     [self.volButtonTimer invalidate]; 
    } 
    self.volButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 
                target:self 
               selector:@selector(onTimerFire) 
               userInfo:nil 
               repeats:NO]; 

} 

-(void)onTimerFire { 
    NSLog(@"Long Press %d",secondsElapsed); 
    if (secondsElapsed > 1) 
    { 
     //Do Something 
    } 
    else secondsElapsed = 0; 

} 

Detect iPhone Volume Button Hold? (iOS 8)

を参照してください。グーグルで検索したが失敗した。スナッチャッチがそれをしている場合、その実行可能なことを意味します。

ありがとうございました

答えて

0

私は今同じ問題に直面しています。私が知ることができたのは、いくつかの基本的なハードウェア機能が変更された場合、Appleがあなたのアプリケーションを拒絶するということです。このリンク:https://developer.apple.com/app-store/review/guidelines/を参照してください。一方、App StoreにはSnapchatのような多くのカメラアプリがあり、他の目的のためにボリュームボタンやロングプレスを使用しているので、誤解を招きます。

はとにかく、私はこのスレッドを参照して、長押しを処理するために管理:https://github.com/jpsim/JPSVolumeButtonHandler/issues/27#issuecomment-253979943

+0

ああ、それらのSnapchat - ルールブレーカー! –

+0

解決策を見つけました。私の編集した答えをご覧ください。 – Timo

+0

はい、このような機能も実装しましたが、dispatch_after()メソッドを使用しました。 私はSnapchatをAppのように作っています。 AppstoreでのSnapchat禁止の声を集める必要があります) –

関連する問題