覆盖UITableView滚动功能

时间:2014-07-02 17:09:46

标签: ios objective-c uitableview uiscrollview

我正在尝试创建一个卡式仪表板。以下是仪表板外观的草图:http://imgur.com/dx2qbWM

交互应该起作用的方式是每个单独的卡都是可滚动的表视图。如果您位于当前卡片的工作台视图的顶部并且您向下拉,它将实际移动视图并将下一个视图向下移动。

我的主要问题是让表格视图有条件地滚动,然后在其他时间向下移动。我尝试了一些事情并且没有成功。我的第一次尝试是覆盖UITableView的scrollViewDidScroll,如下所示:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    if(self.lastContentOffset > scrollView.contentOffset.y){
        if (self.isAtTop) {
            NSLog(@"is at top");
            if(scrollView.contentOffset.y <= 0){

                NSLog(@"less than or equal to zero");

                CGFloat value = scrollView.contentOffset.y*-1;
                [self.delegate pannedToYPosition:value];

                CGPoint newCenter = CGPointMake(self.previousLocationInSuperview.x,self.previousLocationInSuperview.y+1);
                self.center = newCenter;
                self.previousLocationInSuperview = newCenter;
            }
        }
    }
    else{
        self.atTop = NO;
    }
    self.lastContentOffset = scrollView.contentOffset.y;
}

这不起作用,因为当视图向下移动时,它同时向下滚动表格视图中的内容。

我尝试的另一件事是在表格视图上添加平移手势识别器,有时将平移事件转发到表格视图&#34; setContentOffset&#34;但是出现的问题是失去惯性滚动和视图顶部的橡皮筋效果。

你们推荐什么?我需要以某种方式继承UITableView的子类吗?谢谢!

0 个答案:

没有答案