- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 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/
为什么这不起作用?我在 targetContentOffset->y = -50.0f; 设置了一个断点,并且它被击中,不知道为什么它没有任何效果。 是的寻呼 = 否。 - (void)scrollV
我需要在纵向模式下保持 UICollectionViewCell 居中对齐。 最终结果应该是这样的: animation 我正在使用此代码来执行此操作: override public func ta
我正在编写一个自定义的 UICollectionViewFlowLayout,它覆盖了 targetContentOffset(forProposedContentOffset:),以便在用户缩放时提
我希望 UIScrollView 始终滚动回特定点。我通过写作实现了它: - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
我使用以下代码在我的应用中实现了大标题: if #available(iOS 11.0, *) { navigationController?.navigationBar.pr
documentation声明它是 points(每秒,我假设)?但是,我得到的值在 (.5, 3.5) 范围内。然后 ScrollView 在停止之前移动了数百个点。实际初速度应该相差几个数量级。
我正在为 targetContentOffset 设置一个新值在 scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)在 UIT
我有一个实现分页的 Collection View ,这就是为什么我在自定义 UICollectionViewFlowLayout 中覆盖 targetContentOffset 来处理它。当通过用户
我在一个 View Controller 上有两个 UITableViews( View Controller 是他们的代表)。其中之一将取决于 scrollViewWillEndDragging:w
在我的 UIViewController 中,我有一个 UICollectionView。委托(delegate)设置正确。它工作正常。 isPagingEnabled 设置为 true。但是现在我想
我正在尝试实现一个自定义标签栏,它是可滚动的并且在每个标签栏项目上都有分页。为此,我正在使用代理 scrollViewWillEndDragging:withVelocity:targetConten
如何用 Swift 编写此代码? 更新:发布了我试图转换的方法,最初发布了一个不同的方法,这不是我试图隐藏的方法 这适用于 Objective C,但不适用于 Swift。当我尝试将 ceilf 和
我希望我的垂直 UIScrollView 仅在用户向上滚动时停在最大内容偏移处,或者在用户向下滚动时停在最小内容偏移处。 我正在使用以下两个函数 func targetContentOffset(fo
我是一名优秀的程序员,十分优秀!