我正在尝试编写一个使用振动作为通知的应用程序。一定量的振动意味着某种东西。
我已经设法巧妙地组合了一种方法,可以做出一系列短暂的震动。但是我在做X#振动时遇到了麻烦......
这是我的代码
- (void)goVibration {
if(vCount > 1)
{
vCount--;
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
[self delayCallback:^{
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);
[self goVibration];
} forTotalSeconds:0.3];
}
}
在调用函数之前,vCount = 8。 在这种情况下,我只能振动3次。
如果我取出if(vCount> 1),则函数无限调用。有什么想法吗?
这是我的delayCallback
- (void) delayCallback: (void(^)(void))callback forTotalSeconds: (double)delayInSeconds{
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
if(callback){
callback();
}
});
}
也许我可以使用Taptic Engine?