首先是iOS中默认是支持多触摸点同时点击的。这个特性不是游戏的特权;
多button
同一个view视图上添加多个btn时,多手指同时点击不同btn时可能会触发多次事件进而引起多页面同事进入等非预期效果。
处理方式:可以设置btn.exclusiveTouch=YES;
使不同btn在同时点击时具有互斥效果,即同时只有一个btn相应点击事件;
当然为每个btn设置该属性实在太重复劳动,所以可以在appDelegate中didFinishLaunchingWithOptions
中添加`[UIButton appeare].exclusiveTouch=YES;既可以一步到位用来替代这种重复劳动也可以达到相同的效果;
多view
多个view各自添加tap手势时,上述给view添加exclusiveTouch
属性时无效果,妥协的方式是,在tap的代理方法中添加触发时间,判断2次点击之间的时间间隔,小于一定某个值时不处理。
如:
if(self.previousDate) {
NSTimeIntervale ti = [[NSDate date] dateByAddingTimeInterval:self.previousDate];
if(ti < 1) {
return;
}
}
self.previousDate = [NSDate date];