यह आवश्यकता के लिए विशिष्ट नहीं है लेकिन विभिन्न वर्गों के बीच 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: स्क्रॉल व्यू/एस पर समन्वयित करना चाहते हैं।
।
(या तो 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)];
}
का उदाहरण धन्यवाद, वास्तव में महान काम करता है! - (शून्य) scrollViewDidScroll: (UIScrollView *) scrollView { अगर (scrollView == v1) {v2.contentOffset = v1.content ऑफ़सेट; } और अगर (....... –