Apple анонимный API Shake в iPhone SDK 3.0. Я не могу найти никакой информации об этой новой функции.
Кто знает, как его использовать? В любом примере ссылка будет хорошей.
Apple анонимный API Shake в iPhone SDK 3.0. Я не могу найти никакой информации об этой новой функции.
Кто знает, как его использовать? В любом примере ссылка будет хорошей.
API, который вы ищете, находится в UIResponder:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;
Обычно вы просто реализуете это:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
//Your code here
}
}
в вашем подклассе UIViewController (UIViewController является подклассом UIResponder). Кроме того, вы хотите обработать его в движенииEnded: withEvent:, not motionBegan: withEvent:. motionBegan: withEvent: вызывается, когда телефон подозревает, что тряска происходит, но ОС может определить разницу между целенаправленным встряхиванием пользователя и случайным встряхиванием (например, подняться по лестнице). Если ОС решит, что это не настоящий трясет после motionBegan: withEvent: называется вызовом motionCancelled: вместо motionEnded: withEvent:.
Я разместил в этом потоке полный пример 3.0:
Недавно Joe Hewitt передал код Three20, который использует событие тряски 3.0. Похоже, вам просто нужно реализовать какой-то простой код в -motionBegan:withEvent:
внутри UIResponder
.
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
...
}
}