How can I differentiate a Shake vs a Tilt on the i

2019-04-16 10:19发布

问题:

I have a page UIScrollView that will scroll 1 page left or right depending on the tilt of the phone.

I would also like to implement "Shake for a random page", but cannot figure out how to do the logic for differentiating a shake motion and a x-axis tilt.

Can these two motions be used in conjunction with one another? I don't need anything complicated like shaking while tilting, I just want both to work independently of one another.

回答1:

To detect a "shake" you would check the g-force generated. It will be higher for a shake vs a tilt.

How do I detect when someone shakes an iPhone?

You can definitely use both at the same time, just check the g-force for a high enough value to indicate a shake (> 1g - adjust to get the sensitivity to your liking), then if no shake is detected fall through to the tilt checking.



回答2:

The iPhone Application Programming Guide offers code samples for detecting gravity (tilt) and sudden acceleration (shakes)



回答3:

A tilt should never exceed 1g, while a shake can easily do so.