ScrollToItem无法正常工作

时间:2017-10-04 16:27:13

标签: ios swift scroll collectionview

我有一个按钮的水平集合视图。单击其中一个时,用户将被带到另一个视图控制器。通常并非所有按钮都是可见的,所以我想要的是所选按钮位于集合视图的最左侧。

我试图用scrollToItem函数做到这一点。问题是,它每次都会一直向右滚动集合视图。

相关代码:

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/umd/popper.js",
"~/Scripts/bootstrap.js"));

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您正在调用cellForItemAt方法中的scrollToItem方法,该方法为集合视图中的每个可见单元格调用。所以你基本上试图滚动到每个单元格,因为它变得可见。尝试在didSelectItemAt方法中调用scrollToItem方法,如下所示:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    collectionView.scrollToItem(at: indexPath, at: .left, animated: true)
}

仅在选择单元格时调用didSelectItemAt并提供所选单元格的IndexPath。

答案 1 :(得分:0)

我得到了它的工作。我所做的就是改变

if isScrolling == false {
    collectionView.scrollToItem(at: indexPath, at: UICollectionViewScrollPosition.left, animated: false)
}

if isScrolling == false {
    let i = IndexPath(item: 1, section: 0)
    collectionView.scrollToItem(at: i, at: .right, animated: false)
}

以前它会滚动到每个单元格而不会停在每个单元格上。

因此,对于每个项目,我都会根据所选的部分进行硬编码。