Tableview仅弹跳一侧顶侧

时间:2016-12-29 09:36:32

标签: ios objective-c uitableview scrollview

我有一个 private void hideNavigationBar() { View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; decorView.setSystemUiVisibility(uiOptions); } 我希望UITableView,但我无法解决这个问题。看到这个视频链接并给我解决方案。任何建议都是欣赏和接受的。

下面 https://www.dropbox.com/s/qztsfkqoxuy4aaj/question.mov?dl=0

这是我的tableview信息。

1 个答案:

答案 0 :(得分:7)

使用方法scrollViewDidScroll检查tableview的scrollview的内容偏移量。检查用户是否正在尝试滚动超出表视图的底部边界。如果是这样,请滚动回到tableview的末尾。这不会限制底部弹跳,但会快速向后滚动,用户不会注意到底部反弹。

   - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
            [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)];
        }
    }

///更新 - 如果Tableview的内容大小小于其框架,则上述代码可能无效。 你可以在这种情况下使用以下内容:

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

    if(scrollView.contentSize.height > scrollView.frame.size.height)
    {
    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
       [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)];
    }
    }
    else if (scrollView.contentOffset.y >=  0)
    {
         [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, 0)];
    }
}