У меня есть UIScrollView
с другим UIScrollView
внутри. Оба они прокручиваются по горизонтали и имеют pagingEnabled = YES
. Предположим, что я начал прокручивать внутренний вид прокрутки и достиг самой правой границы. И если я продолжу прокрутку в нем, тогда внешний scrollView начнет двигаться. Мне нужно избегать этого. Внутренний вид должен прыгать с эффектом резиновой ленты, внешний должен оставаться на своем месте.UIScrollView внутри UIScrollView
Надеется, что это понятно, но вот эскиз:
Я попытался установить outerView.scrollEnabled = NO;
так:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
outerView.scrollEnabled = NO;
}
, и она работает точно так, как мне нужно, если прокручивать только в innerView. OuterView больше не прокручивается. Но я должен установить scrollEnabled
обратно в YES где-нибудь в этом случае, если я захочу снова прокрутить внешний вид. Я пытался сделать это здесь:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
outerView.scrollEnabled = YES;
}
, но чем я получаю ту же проблему: после достижения наиболее правой границы innerView outerView свиток вместо innerView перескакивает с резиновыми зонным эффектом.
Любые предложения по решению проблемы?
в ваших методах делегата scrollview не похоже, что вы проверяете, какой scrollviewViewBeginDragging и какой scrollViewDidEndDecelerating. Я не совсем понимаю ваши потребности, но это не так. – mkral
попробуйте установить тег на каждом прокрутке, затем установите флажок 'if (scrollview.tag == 1) ' – mkral
@mkral: у меня есть разные делегаты для этих просмотров, поэтому мне не нужно проверять параметр. – Anastasia