我知道这个命令:
self.tableView.scrollEnabled = true
问题是:我想根据scrollView位置锁定滚动。为此我做了:
let topEdge = scrollView.contentOffset.y
let followersViewEdge = CGRectGetHeight(self.profileView.frame) - 50
if topEdge >= followersViewEdge {
self.tableView.scrollEnabled = true
}
它可以工作,但问题是它不会立即锁定或解锁滚动。要锁定或解锁UITableView滚动,我需要从屏幕上松开手指并再次滚动。在这种情况下它有效。
我想立即制作,因此当我在屏幕上滑动时,它会锁定并解锁滚动。我该怎么办?
更新
我的代码有效。这不是问题。问题是我需要立即进行这些更改,而不是将手指从屏幕上移开。
所以,不要回答我如何锁定滚动!我知道怎么做。
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要为表视图设置平移手势识别器并保持监听侦听器。
通过你的方法可以锁定它。
if topEdge >= followersViewEdge {
self.tableView.scrollEnabled = true
}
通过平移手势识别器,您可以锁定/解锁它。
if(self.tableView.scrollEnabled) {
self.tableView.scrollEnabled = false
} else {
self.tableView.scrollEnabled = true
}
示例
// Added the Pan Recognizer for capture the touches
UIPanGestureRecognizer *panReconizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panReconizer:)];
panReconizer.maximumNumberOfTouches = panReconizer.minimumNumberOfTouches = 1;
[self.tableView addGestureRecognizer:panReconizer];
- (void)panReconizer:(UIPanGestureRecognizer *)pan {
NSLog(@" .............. pan detected!! ...................");
if(self.tableView.scrollEnabled) {
self.tableView.scrollEnabled = false
} else {
self.tableView.scrollEnabled = true
}
}
答案 2 :(得分:0)
滚动时强制contentOffset
为最大值:
let topEdge = scrollView.contentOffset.y
let followersViewEdge = CGRectGetHeight(self.profileView.frame) - 50
if topEdge >= followersViewEdge {
self.tableView.contentOffset.y = followersViewEdge
}