我在 UITableViewCell 中有 UICollectionView 。我想根据两者的contentOffset启用或禁用 UICollectionView 和 UITableView 的滚动。例如,在UICollectionView的ViewController中,我有一个代码 -
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y == 0) {
_collectionView.scrollEnabled = false;
// This will enable _tableView scroll which is implemented in UITableView's ViewController
[_delegate toggleScroll:true];
} else {
_collectionView.scrollEnabled = true;
// This will disable _tableView scroll which is implemented in UITableView's ViewController
[_delegate toggleScroll:false];
}
}
但是启用滚动不会立即生效。第一次滚动不启用或禁用 _collectionView ,但在第二次滚动时,它按预期工作。我们无法动态启用滚动(仅在一次滑动/滚动时)?
答案 0 :(得分:0)
scrollViewDidScroll
来回调用以反弹集合视图的动画。因此,在动画设置scrollEnabled = false
后设置scrollEnabled = true
。
尝试检查0到10或某个阈值范围。
或者你可以试试这个:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y <= 10) {
_collectionView.scrollEnabled = false;
} else {
_collectionView.scrollEnabled = true;
}
}