gpt4 book ai didi

ios - 如何在 Swift 中更改 UICollectionView 的 targetContentOffset?

转载 作者:行者123 更新时间:2023-11-28 05:49:41 39 4
gpt4 key购买 nike

在我的 UIViewController 中,我有一个 UICollectionView。委托(delegate)设置正确。它工作正常。 isPagingEnabled 设置为 true。但是现在我想更改我在 scrollViewWillEndDragging 中尝试过的分页位置,因为在文档中它说:

Your application can change the value of the targetContentOffset parameter to adjust where the scrollview finishes its scrolling animation.

此函数被正确调用,但唯一发生的事情是当我想设置一个新端点时,UICollectionView 滚动到 0。

这是我的代码:

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
print(scrollView.contentOffset, "actual Offset")
print(targetContentOffset.pointee, "future offset")


targetContentOffset.pointee = CGPoint(x: 100, y: 0)
print(targetContentOffset.pointee, "new future offset")
}

在 print("new future offset") 处,它打印出正确的值。所以看起来这个值在这个函数之后发生了变化。

最佳答案

func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, 
withScrollingVelocity velocity: CGPoint) -> CGPoint

描述:

If you want the scrolling behavior to snap to specific boundaries, you can override this method and use it to change the point at which to stop. For example, you might use this method to always stop scrolling on a boundary between items, as opposed to stopping in the middle of an item.

重写此布局方法,而不是直接更改 targetContentOffset 的值。

如果您希望滚动行为捕捉到特定边界,您可以覆盖此方法并使用它来更改停止点。例如,您可以使用此方法始终在项目之间的边界上停止滚动,而不是在项目中间停止。

文档: https://developer.apple.com/documentation/uikit/uicollectionviewlayout/1617729-targetcontentoffset

关于ios - 如何在 Swift 中更改 UICollectionView 的 targetContentOffset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53354048/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com