Mam UIScrollView
z innym UIScrollView
wewnątrz. Oba są przewijane poziomo i mają pagingEnabled = YES
. Załóżmy, że zacząłem przewijać wewnętrzny widok przewijania i osiągnąłem najbardziej prawe ograniczenie. A jeśli przejdę dalej, przewijam zewnętrzny scrollView. Muszę tego uniknąć. Wewnętrzny widok powinien skakać z efektem gumki, zewnętrzny powinien pozostać w swoim miejscu.UIScrollView inside UIScrollView
nadzieję, że to jasne, ale o to szkic:
Próbowałem ustawić outerView.scrollEnabled = NO;
tak:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
outerView.scrollEnabled = NO;
}
i działa dokładnie tak, jak trzeba, jeśli przewijać tylko w innerView. OuterView nie jest już przewijany. Ale muszę ustawić scrollEnabled
z powrotem na TAK dla przypadku, gdybym chciał ponownie przewinąć widok zewnętrzny. Próbowałem to zrobić tutaj:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
outerView.scrollEnabled = YES;
}
, ale nie dostaję ten sam problem: po osiągnięciu najbardziej prawo związane z innerView outerView przewija zamiast innerView skoki ze skutkiem gumy-band.
Wszelkie sugestie, jak rozwiązać problem?
w metodach delegowania przeglądania przewijania nie wygląda jak sprawdzanie, który scrollviewViewBeginDragging i który scrollViewDidEndDecelerating. Nie rozumiem w pełni twoich potrzeb, ale to jest złe. – mkral
spróbuj ustawić znacznik w każdym przewijanym widoku, a następnie zaznacz 'if (scrollview.tag == 1) ' – mkral
@mkral: Mam różne delegacje dla tych widoków, więc nie muszę sprawdzać parametru. – Anastasia