2012-04-18 69 views
0

是否有可能作出這樣的效果:UITableView的自動滾動同時根據其他的UITableView

當我滾動的UITableView的,另一個UITableView的自動滾動同時根據UITableView的我而動。

NS:不能在一個UITableView中由於某些原因...

由於二者結合起來UITableViews。


我找到了一種方法並經過測試。只是我不確定這是否是一種好方法。 像下面這樣執行UIScrollViewDelegate的scrollViewDidScroll。 但我因爲它使scrollViewDidScroll被稱爲多次爲一個滾動到取消彈跳效果...

- (void)syncTableViews:(UIScrollView *)whatScrollView 
{ 
    int tmpDesY = whatScrollView.contentOffset.y; 
    BOOL tmpNeedSetTv00 = NO; 
    BOOL tmpNeedSetTv01 = NO; 
    BOOL tmpNeedSetTv02 = NO; 

    if(whatScrollView == self.TableView00) 
    { 
     tmpNeedSetTv01 = YES; 
     tmpNeedSetTv02 = YES; 
    } 
    else if(whatScrollView == self.TableView01) 
    { 
     tmpNeedSetTv00 = YES; 
     tmpNeedSetTv02 = YES; 
    } 
    else if(whatScrollView == self.TableView02) 
    { 
     tmpNeedSetTv00 = YES; 
     tmpNeedSetTv01 = YES; 
    } 

    if(tmpNeedSetTv00 == YES) 
    { 
     [self.TableView00 setContentOffset:CGPointMake(self.TableView00.contentOffset.x,tmpDesY) animated:NO]; 
    }  
    if(tmpNeedSetTv01 == YES) 
    { 
     [self.TableView01 setContentOffset:CGPointMake(self.TableView01.contentOffset.x,tmpDesY) animated:NO]; 
    } 
    if(tmpNeedSetTv02 == YES) 
    { 
     [self.TableView02 setContentOffset:CGPointMake(self.TableView02.contentOffset.x, tmpDesY) animated:NO]; 
    } 
} 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    [self syncTableViews:scrollView]; 
} 

回答

0

的UITableView中作爲代表一個UIScrollView,增加UIScrollViewDelegate你的課,你 只需使用:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    UIScrollView *otherScrollView = (scrollView == self.tableViewHours) ? self.tableViewDay : self.tableViewHours; 
    [otherScrollView setContentOffset:[scrollView contentOffset] animated:NO]; 
} 

問候。