2017-11-10 3 views
0

私は、ある時間間隔でどのように振動するのかについての記事をたくさん見つけました。最初は、これが私の必要と思ったものでした。しかし、私のニーズは異なります、条件が満たされるまで振動する必要があります。私は、スレートと呼ばれる描画パッドを持っています - 私はペンがパッド上にある間、つまり誰かがそれを描いている間に私の電話機を振動させたいです。私はここで止まるように言うまで私のiPhoneを振動させてください

while (pen is touching) 
vibrate 

を望むものの

疑似コードは、私の

- (void)touchMoved:(CGPoint)point 
+0

簡単にはできない理由が考えられます。おそらく、それはバッテリー寿命を破壊するでしょう。 – bbum

+0

私はそれを信じています。私はそれが実際に可能かどうか疑問に思います。 – digit

答えて

0

を「タッチが移動」されている電話機を振動させると終了をキャッチすることができますAudioToolboxフレームワークのメソッドがありますそのような出来事の私はそれが必要になるまで振動を維持する再帰的な方法を使用します。

@property (assign) BOOL keepGoing; 

... 

-(void)penDidStartDrawing{ 
    self.keepGoing = YES; 
    [self justVibrate]; 
} 

-(void)penDidStopDrawing{ 
    self.keepGoing = NO; 
} 

- (void) justVibrate{ 
    if(self.keepGoing){ 
     AudioServicesPlayAlertSoundWithCompletion(kSystemSoundID_Vibrate, ^{ 
      [self justVibrate]; 
     }); 
    } 
} 
+0

一度に1つのビートではなく、「フロー」でこれを行う方法はありますか? – digit

+0

残念ながら、これを可能にする公開APIはありません。私のソリューションはとても優雅に見えないかもしれないが、私は単純な方法があるとは思わない。 – Garba

関連する問題