如何防止UITableView向下滚动?
答
您应该在UITableViewDelegate
中执行func scrollViewDidScroll(scrollView: UIScrollView)
。
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.y > 0 {
// you scrolled down
scrollView.contentOffset.y = 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
}
}
答
- (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];
}
答
在viewDidLoad()
方法添加tableView.alwaysBounceVertical = false
。
这将帮助您达到您的要求。
tableView.alwaysBounceVertical = false工作干净 –
谢谢,正是我所知 – elkorb