0

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

4

4 回答 4

3

你应该func scrollViewDidScroll(scrollView: UIScrollView)在你的UITableViewDelegate.

func scrollViewDidScroll(scrollView: UIScrollView) {
    if scrollView.contentOffset.y > 0 {
        // you scrolled down
        scrollView.contentOffset.y = 0
    }
}
于 2016-04-21T13:46:25.220 回答
2

添加tableView.alwaysBounceVertical = false你的viewDidLoad()方法。

这将帮助您实现您所需要的。

于 2016-04-27T06:45:54.407 回答
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];
    }
}

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

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

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

    if translation.y > 0 {
        scrollView.scrollEnabled = false
    } else {
        scrollView.scrollEnabled = true
    }
}
于 2016-04-21T13:49:20.607 回答
-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];
}
于 2016-04-21T16:11:18.887 回答