Jestem całkiem nowy w programowaniu i Objective C. Zastanawiałem się, jak zrobić aplikację, która ma pusty ekran i timer, który działa przez jedną minutę. Masz uderzyć tak szybko, jak tylko możesz i tak długo, jak możesz. Zastanawiam się, jak wprowadzić UITapGestureRecognizer
do mojego kodu.Jak zaimplementować UITapGestureRecognizer w mojej aplikacji
Odpowiedz
Jest to krok po kroku, w jaki sposób zaimplementować rozpoznawania, czyli recognizers gest w swojej klasie:
Zgodne swoją klasę do protokołu
UIGestureRecognizerDelegate
.Wywołaj urządzenie do rozpoznawania gestów. Na przykład, aby utworzyć instancję
UITapGestureRecognizer
, zrobimy:UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
Tutaj akcja jest selektor, który zajmie się gest. Tutaj nasz selector handleTapFrom będzie wyglądał mniej więcej tak:
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer { //Code to handle the gesture }
Argumentem do selektora jest narzędzie do rozpoznawania gestów. Możemy wykorzystać ten gest rozpoznawania, aby uzyskać dostęp do jego właściwości, na przykład, możemy znaleźć stan rozpoznawania gestów, jak,
UIGestureRecognizerStateBegan
,UIGestureRecognizerStateEnded
itpUstaw żądane właściwości na instancja rozpoznawania gestów. Na przykład dla
UITapGestureRecognizer
możemy ustawić właściwościnumberOfTapsRequired
inumberOfTouchesRequired
.Dodaj urządzenie do rozpoznawania gestów do widoku, dla którego chcesz wykrywać gesty. W naszym przykładowym kodem (będę dzielić ten kod dla odniesienia), dodamy rozpoznawania, czyli recognizers gestów do ImageView z następującej linii kodu:
[self.imageView addGestureRecognizer:tapGestureRecognizer];
Po dodaniu rozpoznawania gestów do widoku, ustaw delegować na funkcję rozpoznawania gestów, tj. klasę, która zajmie się wszystkimi elementami rozpoznawania gestów. W naszym przykładowym kodzie, to byłoby tak:
tapGestureRecognizer.delegate = self;
Uwaga: Przypisywanie delegata po dodaniu rozpoznawania gestów do widoku. W przeciwnym razie metoda akcji nie zostanie wywołana.
Przepraszamy za nieprawidłowe formacie !!! –
Wielkie dzięki za pomoc! –
Nic nie jest przykro. Istnieje krzywa uczenia się, jeśli chodzi o formatowanie znaczników. – nhahtdh
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
self.tableView.userInteractionEnabled = YES;
gestureRecognizer.cancelsTouchesInView = NO; // this prevents the gesture recognizers to 'block' touches
przykład w Swift:
import UIKit
class ViewController: UIViewController {
@IBOutlet var myUIImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "myUIImageViewTapped:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
self.myUIImageView.addGestureRecognizer(singleTap)
self.myUIImageView.userInteractionEnabled = true
}
func myUIImageViewTapped(recognizer: UITapGestureRecognizer) {
if(recognizer.state == UIGestureRecognizerState.Ended){
println("myUIImageView has been tapped by the user.")
}
}
}
To prawda, userInteractionEnabled jest niezbędna. Dzięki! –
Nie rozumiem, dlaczego jest wymagane sprawdzenie "rozpoznawana.state == UIGestureRecognizerState.Ended". Testowałem to i działa również bez niego. Zakładam, że potrzebujesz go do wielokrotnego rozpoznawania gestów, ale w przypadku jednego dotknięcia, czy nadal tego potrzebujemy? – plam4u
Jeśli pracujesz Swift (iOS9) i SpriteKit, spróbuj wykonać następujące czynności.
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
let singleTap = UITapGestureRecognizer(target:self, action:#selector(self.handleSingleTap:))
singleTap.numberOfTouchesRequired = 1
singleTap.addTarget(self, action:#selector(self.handleSingleTap))
view.userInteractionEnabled = true
view.addGestureRecognizer(singleTap)
}
//event handler
func handleSingleTap(sender:UITapGestureRecognizer){
print("tapped")
}
}
- 1. Jak zaimplementować alerty o błędach sieciowych w mojej aplikacji?
- 2. Jak zaimplementować DisplayMemberPath dla mojej wtf UserControl?
- 3. Jak zaimplementować Google reCaptcha w aplikacji MVC3?
- 4. Czytelność w mojej aplikacji
- 5. android: Jak mogę zaimplementować pierwszy raz samouczek, taki jak Go Launcher w mojej aplikacji?
- 6. Uzyskiwanie UITableViewCell z UITapGestureRecognizer
- 7. Jak mogę zaimplementować miniplayer w Apple Music w mojej własnej aplikacji?
- 8. Jak dodać PLCrashReporter do mojej aplikacji?
- 9. Jak zaimplementować wzorzec MVC w aplikacji Tkinter
- 10. Jak mogę zaimplementować modularyzację w aplikacji Rails?
- 11. Jak zaimplementować bazę danych w aplikacji PhoneGap?
- 12. Jak wyciszyć dźwięk mojej aplikacji?
- 13. Jak mogę zaimplementować pole wyboru "Wybierz wszystko" w mojej aplikacji ASP.NET MVC?
- 14. Umieszczenie terminala w mojej aplikacji?
- 15. Jak mogę umieścić stronę w mojej aplikacji?
- 16. Jak znaleźć pracowników w mojej aplikacji Elixir?
- 17. Jak zintegrować gadżety w mojej aplikacji .NET?
- 18. Jak mogę osadzić NetLimiter w mojej aplikacji
- 19. Jak używać serwletu w mojej aplikacji Grails?
- 20. Problem z UITapGestureRecognizer
- 21. UITapGestureRecognizer z celem - Swift
- 22. Wyklucz wyrób z UITapGestureRecognizer
- 23. Jak korzystać z aplikacji WhatsApp w mojej aplikacji na Androida?
- 24. Jak zaimplementować rejestrowanie błędów w aplikacji Windows Phone?
- 25. Jak wywołać metodę didSelectRowAtIndexPath za pomocą UITapGestureRecognizer?
- 26. PHP Fatal error: Próbuję zaimplementować Form \ AbstractType w mojej aplikacji Symfony2
- 27. Swift3 iOS - Jak wywołać funkcję wyzwalacza UITapGestureRecognizer
- 28. wykrywanie palca w górę/w dół UITapGestureRecognizer
- 29. Jak zaimplementować pionowy przesuwny pasek akcji (jak w aplikacji grofers)
- 30. Jak mogę zasymulować zakończenie mojej aplikacji Metro?
pomóc sobie: https://github.com/nhahtdh/PS3/blob/master/Game/GameBlock.m – nhahtdh