Я построил вложенный вид прокрутки. в 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];
}