同步两个UIScrollBar

时间:2012-02-21 08:23:14

标签: ios ios5 ios4

我的应用程序中有一个页面有2个UIScrollBars对象我将它命名为scrol1和scrol2,scrol1位于scrol2的左边我想实现这个目的;

当scrol2从右向左滚动(从左到右)时,scrol1不滚动,当scrol2从上到下滚动(从下到上)时,scrol1以scrol2同步滚动。我怎么能做到这一点。请提供一些示例或想法。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

在创建滚动视图期间,您应该为滚动视图scroll2的contentOffset创建一个键值观察器(KVO)

NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld;
[scrol2 addObserver:self forKeyPath:@"contentOffset" options:options context:nil];

然后在观察值的方法中,根据您希望的滚动行为滚动滚动视图。

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    CGPoint new = [[change objectForKey:@"new"] CGPointValue];
    CGPoint old = [[change objectForKey:@"old"] CGPointValue];
    // it could be necessary to convert your scroll offset for the other scroll view
    [scrol1 setContentOffset:new];
}