2013-04-04 17 views
5

Mam kilka UIButtons w UIScrollView, ale nie chcę opóźniać dotknięcia przycisku. Jednak gdy tylko widok przewijania wykryje przeciągnięcie/przewinięcie, chcę anulować dotyk UIButton i kontynuować przewijanie UIScrollView.iOS UIScrollView anuluj dotyk Uibutton na przewijanie

mam włączone Po ...

_scrollView.delaysContentTouches = NO; 

... ale (oczywiście) dotknięcie przycisku nie anuluje po przeciągnięciu. Czy ktoś ma jakieś sugestie, w jaki sposób mogę wdrożyć tę funkcjonalność?

Odpowiedz

7

Możesz zastąpić tę metodę z UIScrollView.

-(BOOL)touchesShouldCancelInContentView:(UIView *)view 
{ 
    return YES; 
} 

W swoim UIButtonie należy dodać inną metodę dla różnych zdarzeń kontrolnych.

  1. pokaż efekt podkreślenia dla UIControlEventTouchDown.
  2. przycisk spustowy dla UIControlEventTouchUpInside | UIControlEventTouchUpOutside;
  3. efekt jasnego podświetlenia dla UIControlEventTouchCancel.
+1

To jest pożądane rozwiązanie. Dzięki. – lucien

+0

UIControlEventTouchCancel to jedyne powiadomienie, którego mi brakowało i zadziałało. Dzięki! – cgossain

1

Możesz użyć scrollViewWillBeginDragging, aby wystrzelić powiadomienie i obsługiwać przycisk anulowania, nasłuchując go w kodzie przycisków. Myślę, że właśnie to próbujesz zrobić, ale nie jestem pewien, czy dobrze zrozumiałem twoje pytanie.

+0

Dziękujemy za opinię. Próbowałem scrollViewWillBeginDragging, ale nie uruchamia się, jeśli dotkniesz przycisk przed przewinięciem. Chcę tylko dotknąć przycisku, ale bez opóźnień. Następnie, jeśli poruszasz palcem, gdy jest on nadal w dół, anuluje on przycisk i rozpoczyna przewijanie. – lucien

+0

Spróbuj tego na ekranie głównym iOS ... dotknij aplikacji, a zauważysz, że ciemnieje, ale gdy tylko przeciągasz palcem, anulujesz dotyk i przewijasz zamiast tego – lucien

+0

Chcesz, aby przycisk natychmiast się odpalił czynność, ale kiedy przeciągany widok jest przeciągany, aby anulować? A gdy naciśniesz przycisk, a następnie przeciągniesz, scrollViewWillBeginDragging nie zostanie wywołany? Dobry przykład na ekranie głównym. – Psiticosis

Powiązane problemy