0

次のような効果を生み出すことは可能ですか?

UITableView をスクロールすると、移動中の UITableView に従って、別の UITableView が同時に自動スクロールします。

NS: 何らかの理由で、2 つの UITableView を 1 つの UITableView に結合することはできません...

ありがとう。


私は方法を見つけてテストしました。それが良い方法かどうかはわかりません。以下のように UIScrollViewDelegate の scrollViewDidScroll を実行します。しかし、1回のスクロールで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];
}
4

1 に答える 1

0

UIScrollView を委任するための UITableView、使用するクラスに UIScrollViewDelegate を追加します。

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

よろしく。

于 2012-11-15T15:32:19.130 に答える