我有一个tableview,其中包含全屏的单元格(带有fullScreenTableViewController的fullScreenTableView),并且滚动视图是分页的,它垂直滚动。单元格充当不同的屏幕,您可以垂直滑动以在它们之间移动。
在顶部单元格中,我有一个tableview作为聊天记录(chatLogTableView和chatLogTableViewController),所以它足够长,需要滚动。当您向上滚动contentOffset = 0
以后,我仍然希望内容反弹。
当您滚动到聊天日志内容的底部时,我想将聊天记录重新设置为活动滚动视图,而是滚动父tableView,以便在屏幕之间导航。如果你向下滚动并在一个拖动中备份,我可以将parentScrollView作为活动的那个,但对我来说似乎更合乎逻辑。
我正在使用这个:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat height = _tableView.contentSize.height;
CGFloat frameHeight = _tableView.bounds.size.height;
CGFloat contentOffset = _tableView.contentOffset.y;
if (contentOffset > height - frameHeight){
// DO SOMETHING HERE THAT STOPS THIS AS THE
// ACTIVE SCROLL VIEW AND SWITCH TO THE PARENT SCROLLVIEW
}
}
这里的最后一个关键注意事项是,由于parentScrollView实际上是一个tableView,我不想将其委托从fullScreenTableViewController更改为chatLogTableViewController,反之亦然,因为这会使逻辑混乱,当然我和如果必须这样做的话,请对它开放。
有什么建议吗?我已经尝试过,[scrollView setScrollEnabled:NO]
,[_parentScrollView becomeFirstResponder]
(我知道它不应该工作,但此时仍在尝试任何事情),我试着调查hitTest来拖动UIViews,但我似乎找不到合适的解决方案。