如何防止UITableView仅向下滚动? 我尝试使用滚动启用属性,但它冻结了从两侧滚动。 提前谢谢。
答案 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];
}