Ios 如何在将UICollectionView的一个组件移动到其边界附近时向上/向下滚动?

Ios 如何在将UICollectionView的一个组件移动到其边界附近时向上/向下滚动?,ios,objective-c,uicollectionview,drag,Ios,Objective C,Uicollectionview,Drag,因此,我有一个带有多行/列的scrollabbleUICollectionView 我可以在每个UICollectionViewCell中添加我称之为posit的内容(右侧的红色/黄色/绿色方框)。然后我还可以在每个UICollectionViewCell之间移动每个帖子 我想做的是,当我(缓慢)拖动UICollectionView顶部/底部附近的一个位置时,它将在UICollectionView上/下滚动 我知道如何使用UICollectionView的滚动条位置:\u collection

因此,我有一个带有多行/列的scrollabble
UICollectionView

我可以在每个
UICollectionViewCell
中添加我称之为posit的内容(右侧的红色/黄色/绿色方框)。然后我还可以在每个
UICollectionViewCell
之间移动每个帖子

我想做的是,当我(缓慢)拖动
UICollectionView
顶部/底部附近的一个位置时,它将在
UICollectionView
上/下滚动

我知道如何使用
UICollectionView
的滚动条位置:
\u collectionView.contentOffset.x
(或者使用
\u collectionView.contentOffset.y
,但我并不真正关心这个)

我想如果我能够将posit的中心坐标与集合视图的顶部/底部坐标进行比较,就像
如果(posit的中心靠近顶部/底部),那么{向上/向下滚动}


但我真的不知道如何处理,如果有人能帮我,那就太好了!提前谢谢

这比你想象的要简单

我曾经用
UITableView
这样做过一次<代码>UICollectionView的行为应该类似。您必须实现
UIScrollViewDelegate
此代码应能帮助您:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView == self.firstTableView)
    {
        [self.secondTableView setContentOffset:scrollView.contentOffset];
    }

    else if (scrollView == self.secondTableView)
    {
        [self.firstTableView setContentOffset:scrollView.contentOffset];
    }
}

我们可以从它的属性
contentOffset
中知道有多少
UITableView
被滚动(并对其进行更改)。posit的位置可以通过另一个滚动视图(如果我们正在使用它)或拖动时的坐标来定义。当posit接近所需位置时-更改
contentOffset
或将
UICollectionView
滚动到所需的索引路径。

第一个和第二个表视图代表什么?本示例的思想是,由于滚动一个滚动视图,因此通过更改内容偏移将另一个滚动视图一起滚动。假设第一个
UITableView
代表您的
UICollectionView
,第二个代表您的元素。因此我需要再添加一个UICollectionView?不一定。您想添加一个在
UICollectionView
滚动时与组件一起移动的组件,对吗?因此,该组件可能是一个带有
UIScrollView
的组件。无论是哪个UI元素,
UICollectionView
UITableView
UIScrollView
等等。如果您希望提供不同类型的元素位置更改,而不是一起滚动,您可以根据
contentOfset
获得
UICollectionView
滚动更改,并将元素移动到您想要的任何位置。不过,使用
UIScrollView
移动元素(如您所见)要简单得多。我不知道您是否理解我要做的事情。我真的不明白你要我做什么,所以我将分三步解释:1)我开始拖动帖子2)帖子实际上被拖动到集合视图的顶部/底部附近3)现在,集合视图正在上/下滚动,这将允许我在下面的单元格中添加posIt(我们在图片上看不到的东西。这是你以前理解的吗?