iOS:嵌套滚动视图,从子UIScrollView切换到父中间滚动

时间:2014-08-13 16:15:55

标签: ios objective-c uitableview uiscrollview

我有一个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,但我似乎找不到合适的解决方案。

0 个答案:

没有答案