Как ограничить scrollViewWillBeginDragging только один объект отправителя? - PullRequest
0 голосов
/ 21 февраля 2011

Я построил вложенный вид прокрутки. в view.xib есть один вид прокрутки с вертикальной прокруткой с именем rootScroll. в этом есть два других вида прокрутки с горизонтальной прокруткой с именами topScroll и bottomScroll.

Моя цель состоит в том, чтобы постепенно уменьшить bottomScroll, когда пользователь перетаскивает topScroll, и снова добавить его, когда торможение заканчивается.

код работает нормально до сих пор. единственная проблема заключается в том, что scrollViewWillBeginDragging получает сообщения от всех трех UIScrollViews. Я зарегистрировал отправителя и вижу, что они разные, но в любом случае я не знаю, как ограничить анимацию только сообщениями, отправленными topScroll!

как я могу различить разных отправителей внутри scrollViewWillBeginDragging?

Вероятно, это объективный вопрос для начинающих. я надеюсь, что кто-нибудь намекнет в любом случае.

спасибо!

- (void)viewDidLoad {
    [super viewDidLoad];

    // rootScroll
    [rootScroll setScrollEnabled:YES];
    [rootScroll setContentSize:CGSizeMake(1024, 1980)];

    // topScroll    
    [topScroll setScrollEnabled:YES];
    [topScroll setContentSize:CGSizeMake(3072, 406)];

    // bottomScroll
    [bottomScroll setScrollEnabled:YES];
    [bottomScroll setContentSize:CGSizeMake(3072, 188)];
}


- (void)scrollViewWillBeginDragging:(UIScrollView *)sender
{
    NSLog(@"will begin dragging, %i", sender);

    [UIScrollView beginAnimations:nil context:nil];
    [UIScrollView setAnimationDuration:0.15f];
    [self.bottomScroll setAlpha:0.0];
    [UIScrollView commitAnimations];

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender
{
    NSLog(@"end position");

    [UIScrollView beginAnimations:nil context:nil];
    [UIScrollView setAnimationDuration:1.5f];
    [self.bottomScroll setAlpha:1.0];
    [UIScrollView commitAnimations];

}

1 Ответ

1 голос
/ 21 февраля 2011

Установите свойства tag прокрутки в Интерфейсном Разработчике.Затем вы можете использовать [sender tag] в своем методе, чтобы отделить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...