Czy można uzyskać współrzędne X i Y dotyku? Jeśli tak, to proszę podać bardzo prosty przykład, w którym współrzędne są po prostu rejestrowane na konsoli.Czy można uzyskać współrzędne X i Y dotyku?
Odpowiedz
Korzystanie touchesBegan Event
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
NSLog(@"Touch x : %f y : %f", touchPoint.x, touchPoint.y);
}
To zdarzenie jest wywoływane, gdy zaczyna dotykowego.
Korzystanie gest
Zarejestruj UITapGestureRecognizer w viewDidLoad:
Metoda
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureRecognizer:)];
[self.view setUserInteractionEnabled:YES];
[self.view addGestureRecognizer:tapGesture];
}
Konfigurowanie funkcji tapGestureRecognizer
// Tap GestureRecognizer function
- (void)tapGestureRecognizer:(UIGestureRecognizer *)recognizer {
CGPoint tappedPoint = [recognizer locationInView:self.view];
CGFloat xCoordinate = tappedPoint.x;
CGFloat yCoordinate = tappedPoint.y;
NSLog(@"Touch Using UITapGestureRecognizer x : %f y : %f", xCoordinate, yCoordinate);
}
Wychodząc z pierwszej metody, którą podałeś, używając dotknięć, jak mogę utworzyć globalne zmienne pozycji xiy? – AwesomeTN
Utwórz zmienną CGPoint w pliku .h i przypisz ją w powyższej metodzie. – icodebuster
Dotknięcia zaczęły działać świetnie, ale nie jestem w stanie uzyskać dotyku. Pracowałem, czy to nie jest dokładnie to samo? – AwesomeTN
Oto bardzo prosty przykład (umieścić go wewnątrz kontrolerze widoku):
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:self.view];
NSLog(@"%@", NSStringFromCGPoint(currentPoint));
}
To wyzwala każdym razem, gdy porusza dotykowych. Możesz także użyć funkcji touchesBegan:withEvent:
, która uruchamia się, gdy zaczyna się dotyk, i touchesEnded:withEvent:
, która wyzwala się, gdy kończy się dotyk (czyli palec zostanie podniesiony).
Można to również zrobić za pomocą UIGestureRecognizer
, co w wielu przypadkach jest bardziej praktyczne.
I c/p to do mojego kontrolera widoku i dostałem błąd z NSLog, ale zostało to naprawione poprzez zmianę ciągu na NSSringFromCGPoint. Ale wciąż nic nie dostałem na konsoli, czy coś mi brakuje? Dzięki za pomoc – AwesomeTN
Nie powinieneś dodawać żadnego dodatkowego kodu, aby to zadziałało. Czy coś innego może uchwycić zdarzenie dotykowe (np. Czy istnieje podgląd podobny do przycisku, który mógłby powstrzymać dotyk przed przejściem do widoku viewController)? – Ander
Zasadniczo każdy widok dodany do 'self.view' viewControllera, który nie ma' .userInteractionEnabled = NO', przechwyciłby dotyk i uniemożliwiłby przejście do metod podanych w powyższej odpowiedzi. – Ander
Najpierw musisz dodać rozpoznawacz gestów do widoku, który chcesz.
UITapGestureRecognizer *myTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myTapRecognizer:)];
[self.myView setUserInteractionEnabled:YES];
[self.myView addGestureRecognizer:myTap];
Następnie w metodzie gest Recognizer można dodzwonić do locationInView:
- (void)myTapRecognizer:(UIGestureRecognizer *)recognizer
{
CGPoint tappedPoint = [recognizer locationInView:self.myView];
CGFloat xCoordinate = tappedPoint.x;
CGFloat yCoordinate = tappedPoint.y;
}
Możesz spojrzeć na Apple UIGestureRecognizer Class Reference
- 1. Wyodrębnij współrzędne X i Y ze String
- 2. jQuery x y współrzędne dokumentu obiektu DOM
- 3. iPhone - UIScrollView ... wykrywania współrzędne dotyku
- 4. Odzyskaj współrzędne X i Y przycisku w Androidzie?
- 5. javascript pobiera współrzędne X i Y po kliknięciu myszy
- 6. geo współrzędne geograficzne (lat, lng) do mapowania (x, y)
- 7. JavaScript/jquery, uzyskaj wszystkie lokalizacje div (x, y). Przekazywanie dotyku?
- 8. Dziwactwo rubowe: x == y && [x, y] .uniq == [x, y]
- 9. Jak zmienić x, y pochodzenie płótna w lewym dolnym rogu i odwrócić współrzędne y?
- 10. Śledzenie systemu Android współrzędne X, y rysowanie ze ścieżki
- 11. Jak ustawić współrzędne x, y okna w Wayland?
- 12. Uzyskaj nowe współrzędne x, y punktu na obróconym obrazku
- 13. JFreeChart uzyskać współrzędne myszy
- 14. Jak uzyskać rzeczywiste współrzędne światowe (x, y, z) z odrębnego obiektu za pomocą urządzenia Kinect
- 15. Jak mogę uzyskać centrum X, Y mojego widoku w Androidzie?
- 16. x, y = getPos() vs. (x, y) = getPos()
- 17. Jak uzyskać pozycję X i Y przycisku UI iPhone
- 18. C/C++ wynosi x [i] * y [i ++] zawsze równa x [i] * y [i]
- 19. Kombinacje trzech liczb dodatnich x, y, z tak, że x + y, x-y, y + z, y-z, x + z i x-z są idealnymi kwadratami
- 20. Jak uzyskać pozycje X i Y elementu w dyrektywie AngularJS
- 21. uzyskiwanie współrzędnych X i Y dla elementu div
- 22. Nie można uzyskać dotyku do pracy w wieloplatformowej aplikacji cocos2d-x
- 23. css background-repeat x i y
- 24. Uzyskiwanie zdarzeń dotyku (współrzędne, zdarzenia MotionEvent, itp.) W usłudze
- 25. W jaki sposób mogę uzyskać liczbę X i Y przy każdym zdarzeniu kliknięcia w Google Maps?
- 26. X i Y lub Z - trójskładnikowy operator
- 27. Get X i Y pikseli współrzędne podczas iteracji nad HTML5 canvas getImageData
- 28. Kiedy używać std :: hypot `(x, y)` `nad std :: sqrt (x * x + y * y)`
- 29. Dlaczego argumenty atan2 Y, X zamiast X, Y?
- 30. Jak zrobić pętlę nieskończoną z "x <= y && x > = y && x! = Y"?
Czytałeś odniesienie UITouch klasie? – rdelmar