如何解决ScrollViewWillEndDragging 中的 targetContentOffset:主要返回零
UIScrollView 委托方法 library(pryr)
object_size(green_2018_ff) #1.13GB
有时会在 scrollViewWillEndDragging
参数中返回零。
当我将滚动视图拖动到两个视图的大约中间时,会特别发生这种情况。因为它返回零,所以发生的事情是,scrollView 卡在两个视图之间,而不是捕捉到下一页或上一页。
我的方法实现是
targetContentOffset
这是我的 func scrollViewWillEndDragging(_ scrollView: UIScrollView,withVeLocity veLocity: CGPoint,targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let pageWidth:CGFloat = self.view.frame.width
let currentOffset = scrollView.contentOffset.x
let targetoffset = CGFloat(targetContentOffset.pointee.x)
var newTargetoffset:CGFloat = 0.0
if targetoffset > currentOffset {
newTargetoffset = CGFloat(ceilf(Float((currentOffset / pageWidth) * pageWidth)))
}
else {
newTargetoffset = CGFloat(floorf(Float((currentOffset / pageWidth) * pageWidth)))
}
if newTargetoffset < 0.0 {
newTargetoffset = 0.0
}
else if newTargetoffset > scrollView.contentSize.width {
newTargetoffset = scrollView.contentSize.width
}
targetContentOffset.pointee = CGPoint(x: newTargetoffset,y: 0.0)
}
方法
viewDidLoad
非常感谢任何形式的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。