2016-04-21 70 views
0

如何防止UITableView仅向下滚动? 我试图使用滚动启用的属性,但它冻结了双方的滚动。 在此先感谢。如何防止UITableView向下滚动?

+0

tableView.alwaysBounceVertical = false工作干净 –

+0

谢谢,正是我所知 – elkorb

回答

2

您应该在UITableViewDelegate中执行func scrollViewDidScroll(scrollView: UIScrollView)

func scrollViewDidScroll(scrollView: UIScrollView) { 
    if scrollView.contentOffset.y > 0 { 
     // you scrolled down 
     scrollView.contentOffset.y = 0 
    } 
} 
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 
    } 
} 
-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]; 
} 
1

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

这将帮助您达到您的要求。