【发布时间】:2015-05-22 13:44:06
【问题描述】:
我有两个水平的UIScrollviews。当用户在其中任何一个中拖动手指时,我想同步他们的滚动。这是我的代码:
self.topScrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
self.topScrollView.delegate = self;
self.topScrollView.bounces = YES;
self.bottomScrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
self.bottomScrollView.delegate = self;
self.bottomScrollView.bounces = YES;
...
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if (scrollView == self.topScrollView)
{
self.bottomScrollView.delegate = nil;
}
else
{
self.topScrollView.delegate = nil;
}
...
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
...
self.topScrollView.delegate = self;
self.bottomScrollView.delegate = self;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
...
self.topScrollView.delegate = self;
self.bottomScrollView.delegate = self;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// Sync the two scroll views
if (scrollView == self.topScrollView)
{
[self.bottomScrollView setContentOffset:scrollView.contentOffset animated:NO];
}
else
{
[self.topScrollView setContentOffset:scrollView.contentOffset animated:NO];
}
...
}
两个滚动视图确实同步滚动,但是问题是所有的弹跳和减速都消失了。整个滚动运动变得非常僵硬。如果我删除所有同步代码,那么每个滚动视图都可以单独工作。
那么,问题是什么?或者UIScrollView可以不同步吗?
【问题讨论】:
标签: ios objective-c uiscrollview uipangesturerecognizer