2012-04-18 67 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]; 
} 

问候。