Bob*_*ryn 5 cocoa-touch uiscrollview ios
在我们的应用程序中,您可以通过搜索来自多个第三方来源的选项来构建问题.大多数搜索结果都显示为全宽的tableview单元格,因为它们的数据适合该格式(我可以在缩略图旁边显示一堆元数据文本).
然而,在图像的情况下,集合视图更有意义.但是现在我遇到了包含垂直滚动集合视图的垂直滚动tableview的问题.
http://www.screencast.com/t/7Z48zkkW
我可以通过捕获viewDidScroll集合视图并在适当的偏移处更新父卷轴视图来使其工作,但只有在用户主动拖动集合视图时才能正常工作.
self.collectionVC.scrollViewDidScroll = ^(UIScrollView *scrollView) {
@strongify(self);
if (self.tableView.contentOffset.y < self.scrollingHeightOffset && scrollView.contentOffset.y > 0) {
CGFloat maxheight = MIN(self.scrollingHeightOffset, self.tableView.contentOffset.y + scrollView.contentOffset.y);
self.tableView.contentOffset = CGPointMake(0, maxheight);
scrollView.contentOffset = CGPointMake(0, 0);
} else if (scrollView.contentOffset.y < 0 && self.tableView.contentOffset.y > -topGuide) {
CGFloat minheight = MAX(-topGuide, self.tableView.contentOffset.y + scrollView.contentOffset.y);
self.tableView.contentOffset = CGPointMake(0, minheight);
scrollView.contentOffset = CGPointMake(0, 0);
}
};
Run Code Online (Sandbox Code Playgroud)
当"投掷"集合视图时,滚动突然停止,失去了集合视图的惯性.触摸tableview进行滚动会产生一个不同的问题,因为当它到达结尾并滚动集合视图时我没有捕获它.
现在,集合视图存在于tableview的单元格中,但如果需要,它也可以是对等体.我正在尝试确定使这两个滚动视图显示为一个的最佳方法.
据我所知,你做了正确的事。viewDidScroll即使用户抬起手指并且滚动视图返回到某个位置后,也应该调用多次。
当用户拖动其中一个滚动视图时,我使用完全相同的方法来同步滚动一对滚动视图。工作完美。
您可能想检查此方法内的计算逻辑。看看它是否在用户抬起手指后要求所有更改,但您以错误的方式定位其他滚动视图。
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |