如何防止UITableView向下滚动?

时间:2016-04-21 13:35:24

标签: ios swift swift2.2

如何防止UITableView仅向下滚动? 我尝试使用滚动启用属性,但它冻结了从两侧滚动。 提前谢谢。

4 个答案:

答案 0 :(得分:3)

您应该在func scrollViewDidScroll(scrollView: UIScrollView)中实施UITableViewDelegate

func scrollViewDidScroll(scrollView: UIScrollView) {
    if scrollView.contentOffset.y > 0 {
        // you scrolled down
        scrollView.contentOffset.y = 0
    }
}

答案 1 :(得分:1)

tableView.alwaysBounceVertical = false方法中添加viewDidLoad()

这将帮助您实现所需。

答案 2 :(得分:0)

view-controller设为UITableView代表

self.myTableView.delegate = self;

并将以下方法添加到视图控制器

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];

    if(translation.y > 0){
        [scrollView setScrollEnabled:NO];
    } else {
        [scrollView setScrollEnabled:YES];
    }
}

我还没有测试过,但我想它会起作用。

编辑:对不起,我上次没有看到标签。这是Swift版本:

func scrollViewDidScroll(scrollView: UIScrollView) {
    var translation: CGPoint = scrollView.panGestureRecognizer.translationInView(scrollView.superview)

    if translation.y > 0 {
        scrollView.scrollEnabled = false
    } else {
        scrollView.scrollEnabled = true
    }
}

答案 3 :(得分:-1)

- (void)viewDidLoad {
   myTableView.scrollView.delegate = self;
}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y > 0 && scrollViewmyTableView.scrollView) 
    {
        [scrollView setScrollEnabled:NO];
        [scrollView setContentOffset:CGPointMake(0, 0)];
    }
    [scrollView setScrollEnabled:YES];
}