Uczę się pisać aplikację za pomocą czujnika żyroskopu w iOS. Czy istnieją klasy do radzenia sobie z żyroskopem podobne do UIAcceleration/UIAccelerometer/UIAccelerometerDelegate dla akcelerometru?iOS Żyroskop API
Odpowiedz
Pierwszy import CoreMotion
ramy
#import <CoreMotion/CoreMotion.h>
self.motionManager = [[CMMotionManager alloc] init];
//Gyroscope
if([self.motionManager isGyroAvailable])
{
/* Start the gyroscope if it is not active already */
if([self.motionManager isGyroActive] == NO)
{
/* Update us 2 times a second */
[self.motionManager setGyroUpdateInterval:1.0f/2.0f];
/* Add on a handler block object */
/* Receive the gyroscope data on this block */
[self.motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMGyroData *gyroData, NSError *error)
{
NSString *x = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.x];
self.gyro_xaxis.text = x;
NSString *y = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.y];
self.gyro_yaxis.text = y;
NSString *z = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.z];
self.gyro_zaxis.text = z;
}];
}
}
else
{
NSLog(@"Gyroscope not Available!");
}
Jako kod mówi, najpierw utworzyć instancję kierownika ruchu. Wtedy widzę, czy urządzenie obsługuje żyroskop. Jeśli nie zginie z wdziękiem, w przeciwnym razie ustaw interwał aktualizacji żyroskopu &, a następnie zarejestruj się, aby uzyskać aktualizacje z żyroskopu. Dzięki tym aktualizacjom musisz zdefiniować niestandardową logikę tego, co chcesz zrobić z wartościami. To jest to, że jesteś dobry, aby przejść ...
Aby uzyskać dane żyroskopu, należy użyć programu CoreMotion. Zacznij od przeczytania relevant section of the Event Handling Guide for iOS. Będziesz musiał pracować z dwiema klasami: CMGyroData, która zawiera dane zdarzeń żyroskopu i CMMotionManager, która służy do rejestracji zdarzeń żyroskopu.
Więcej informacji można znaleźć w tej kwestii za wybraną odpowiedź: Apple gyroscope sample code
- 1. iOS żyroskop, aby wirtualny horyzont
- 2. Czy interfejs API serwisu YouTube na Youtube obsługuje żyroskop podczas umieszczania filmów 360 °?
- 3. iOS odrzuconych: API niepubliczne
- 4. niestandardowe Login Instagram API iOS
- 5. Geofence API dla iOS 5
- 6. Zawieszenie w iOS: XPC API Nadużywanie
- 7. Interfejsy API iOS 6 i kompatybilność wsteczna
- 8. Wyłącza iOS wibruje cicho programowo [Private API]
- 9. Instagram iOS API do publikowania wideo
- 10. API dla skanera kodów kreskowych IOS PDF417
- 11. iOS Facebook Graph API profilu Link Obraz
- 12. Interfejs API "Centrum powiadomień" iOS 5 "?
- 13. Wdrażanie google umieszcza autouzupełnianie API w iOS
- 14. iOS Google Maps Api Tiled Overlays
- 15. Interfejsy API Bluetooth peer to peer iOS
- 16. Interfejs API historii HTML5 na Chrome iOS
- 17. Google Maps API: Współrzędne bieżącej lokalizacji iOS
- 18. iOS Jak korzystać z prywatnego interfejsu API?
- 19. [iPhone - iOS] Potrzebuję QRCode Reader API dla iPhone'a
- 20. Interfejs API wykresów iOS i Facebooka: niespójne kwestie autoryzacji
- 21. Czy funkcja TWRequest iOS API obsługuje uwierzytelnianie tylko do aplikacji?
- 22. Jak korzystać z interfejsu API YouTube dla aplikacji na iOS?
- 23. Synchronizowanie danych za pomocą interfejsu API Dropbox i iOS
- 24. Issue Google maps API iOS 11 z Xcode 9
- 25. Interfejs API FQL i Graph w systemie iOS
- 26. Niepubliczne użycie interfejsu API w aplikacji na iOS?
- 27. Lista interfejsów API/procesów z wieloma zadaniami iOS
- 28. Interfejs API wykresów do odprawy z Facebook iOS SDK 3.1.1
- 29. Implementacja OAuth 1.0 w aplikacji na iOS (Withings api)
- 30. Wyjątek SIGPIPE w projekcie iOS z interfejsem API BUMP Zintegrowany
[self.motionManager isGyroAvailable] czy to czek musi? Co się dzieje, gdy żyroskop jest niedostępny? Czy aplikacja się zawiesi? Lub zwróć wartości puste. Jeśli zwraca wartości null, to który obiekt zwróci wartość zerową? – user682765
to sprawdzian, ponieważ starsze iPhony nie mają żyroskopu. Może się zawiesić, jeśli zaczniesz używać interfejsu gyro API, gdy samo urządzenie nie obsługuje. lepiej być bezpiecznym niż żałować ... –
Jako aktualizacja: Dokumentacja Apple dla 'startGyroUpdatesToQueue' zaleca, aby nie używać głównej kolejki, ponieważ może to spowodować opóźnienie. Użyj innej kolejki lub po prostu użyj właściwości '.gyroData' menedżera ruchu, aby uzyskać dane żyroskopu. Jeśli tworzysz grę za pomocą szkieletów ruchu, zaleciłbym wykonanie 1/60 sekundy (aby dopasować liczbę klatek na sekundę), a jeśli któryś z nich ma problem, zmień przerwę na pobieranie danych żyroskopowych . – DDPWNAGE