我擁有兩個UIScrollViews,它們彼此重疊。兩個UIScrollViews,同步滾動
UIView
|
--------------------------
| |
UIScrollView1 UIScrollView2
我喜歡它,以下面的方式工作。如果我滾動UIScrollView2,UIScrollView1也應該滾動相同的contentOffset。它必須通過同步完成,因此使用scrollViewDidScroll
不是一個選項。你們有沒有想法,怎麼辦?
源代碼
_prContentGridView = [[PRContentGridView alloc] initWithFrame:frame];
_prContentGridView.minimumZoomScale = 0.25;
_prContentGridView.maximumZoomScale = 2.0;
_prContentGridView.delegate = self;
_prBackgroundGridView = [[PRBackgroundGridView alloc] initWithFrame:frame];
[self addSubview:_prBackgroundGridView];
[self addSubview:_prContentGridView];
委託方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (_prContentGridView.scrollEnabled == YES) {
CGPoint p = CGPointMake(scrollView.contentOffset.x - _prevousContentOffsetOfContentScrollView.x, scrollView.contentOffset.y - _prevousContentOffsetOfContentScrollView.y);
[_prBackgroundGridView setContentOffset:p animated:YES];
}
}
你實際使用scrollViewDidScroll試過嗎?當然我曾嘗試過 – Vladimir 2012-04-26 08:53:30
。委託方法被調用得太晚,並且UIScrollView1在UIScrollView2後幾秒後停止。 – pawelropa 2012-04-26 09:00:18
???它怎麼能被延遲調用?它應該在scrollview將其內容移動到新的座標之前被調用......如果它晚了,某個地方出了問題......發佈代碼 – meronix 2012-04-26 09:07:14