我正在尝试创建一个卡式仪表板。以下是仪表板外观的草图: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的子类吗?谢谢!