Это не относится к конкретным требованиям, но помогает синхронизировать scrollViews между различными классами.
Чтобы синхронизировать scrollViews между различными классами, используйте NSNotificationCenter для наблюдения за определенным уведомлением.
Когда происходит прокрутка, тогда в методе делегирования -scrollViewDidScroll: используйте NSNotificationCenter , чтобы опубликовать уведомление (с userInfo содержимым как scrollView.contentOffset.x & scrollView.contentOffset.y ) Пример:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSMutableDictionary *userInfo = [[NSMutableDictionary alloc]init];
[userInfo setObject:[NSNumber numberWithFloat:scrollView.contentOffset.x]
forKey:@"offsetX"];
[userInfo setObject:[NSNumber numberWithFloat:scrollView.contentOffset.y]
forKey:@"offsetY"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"scrollSync"
object:nil
userInfo:userInfo];
}
Зарегистрируйтесь для получения этого уведомления в том же классе или любом другом классе и выполните -setContentOffset: метод для scrollView / s, который вы хотите синхронизировать.
.
Пример добавления Observer (либо в didLoad, либо в init, либо в любом другом подходящем вам месте во всех классах.как вам нравится):
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNotification:)
name:@"scrollSync" object:nil];
.
Пример метода выбора
-(void)handleNotification:(NSNotification *)sender
{
float newX = [[sender.userInfo objectForKey:@"offsetX"] floatValue];
float newY = [[sender.userInfo objectForKey:@"offsetY"] floatValue];
[myOtherScrollView setContentOffset:CGPointMake(newX,newY)];
}