Jestem o krok od rozpaczy, próbując osiągnąć coś tak prostego.Stop UITableUżywaj zdarzeń dotykowych, dzięki czemu przesuwne menu w widoku rodzica może wykrywać poziome przeciągnięcia.
Mam widok z menu, które za pomocą touchEvents ślizga się od lewej strony, gdy ma to zrobić z poziomym przesunięciem. Nie korzystam z funkcji rozpoznawania gestów, używam tylko touchbegan, touchSoved itp. I śledzę różnicę współrzędnych x pomiędzy początkową pozycją dotyku, pozycją pośrednią i końcową pozycją dotyku. Działa świetnie.
Ale gdy w ciele mam UITableView, zdarzenia dotyku nie znajdują się już w hierarchii do widoku zarządzającego menu. Próbowałem omijać to, przekazując dotknięcia do superview/nextResponder, jakiego rodzaju prac, ale widzę połączenia touchesBegan i 2 touchesMoved, zanim przestaną być po prostu dalej przetwarzane w hierarchii.
W szczególności mam SlideMenuView, w którym znajduje się widok menu i widok treści. Wewnątrz widoku ciała mam w pewnym momencie UITableView. Widzę (przez NSLog), że metody dotknięć * są wywoływane od początku do końca po prostu dobrze. Przekazuję je do nextResponder i zaczynam je widzieć również w SlideMenuView - ale po 2 wywołaniach TouchMoved wydaje się, że zatrzymują się w SlideMenuView, ale kontynuują w moim UITableView.
Nadpisuję UITableView, aby to zrobić, ale nie zmieniłem nic więcej w nim.
Wiem, że to musi być możliwe, ponieważ jest w aplikacji Facebook. Możesz przesuwać w dowolne miejsce w ciele, które można przewijać, poziomo i odsłonić menu. Chcę, aby to samo naturalnie występowało tutaj, ale wygląda na to, że dzieje się coś dziwnego, a UITableView pochłania lub niszczy zdarzenia.
Czy ktoś może mi w tym pomóc? Ktoś musiał to osiągnąć w czysty sposób.
Czy istnieje powód, dla którego nie można korzystać z funkcji rozpoznawania gestów? Myślę, że byłoby to łatwiejsze do osiągnięcia, gdybyś mógł to zrobić. – rdelmar