为 UICollectionView 禁用向右滑动
Disable swipe in right direction for UICollectionView
当 offset
位于 0 时,用户无需向左滑动,因为使用以下代码在那个方向看不到任何东西:-
collectionView.contentOffset.x = max(0,scrollView.contentOffset.x)
但是在大多数 rightView
上禁用向右滑动怎么样?
我不是 100% 理解你的问题,但这就是你要找的吗?
collectionView.contentOffset.x = max(min(collectionView.contentSize.width - collectionView.bounds.width, collectionView.contentOffset.x), 0)
如果是,还要确保 contentSize 大于 collectionView 的 bounds。
使用这个实现 uiscrollviewdelegate
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
var bottomEdge:CGFloat = scrollView.contentOffset.x + scrollView.frame.size.width;
if (bottomEdge == scrollView.contentSize.width)
{
// we are at the bottom
self.collectionView.isScrollEnabled = false
self.collectionView.isPagingEnabled = false
} else {
self.collectionView.isScrollEnabled = true
self.collectionView.isPagingEnabled = true
}
}
你试过吗?
collectionView.bounces = false
当 offset
位于 0 时,用户无需向左滑动,因为使用以下代码在那个方向看不到任何东西:-
collectionView.contentOffset.x = max(0,scrollView.contentOffset.x)
但是在大多数 rightView
上禁用向右滑动怎么样?
我不是 100% 理解你的问题,但这就是你要找的吗?
collectionView.contentOffset.x = max(min(collectionView.contentSize.width - collectionView.bounds.width, collectionView.contentOffset.x), 0)
如果是,还要确保 contentSize 大于 collectionView 的 bounds。
使用这个实现 uiscrollviewdelegate
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
var bottomEdge:CGFloat = scrollView.contentOffset.x + scrollView.frame.size.width;
if (bottomEdge == scrollView.contentSize.width)
{
// we are at the bottom
self.collectionView.isScrollEnabled = false
self.collectionView.isPagingEnabled = false
} else {
self.collectionView.isScrollEnabled = true
self.collectionView.isPagingEnabled = true
}
}
你试过吗?
collectionView.bounces = false