无法分配型“CGPoint”的值键入“CGFloat的”

问题描述 投票:0回答:1

首先,我想获得的布局和计算单元格的宽度包括我试图计算的当前显示的Item.The最终的结果,我想了滚动计算和结束下药每当我停止索引spacing.After滚动但它给我的计算错误。 “无法分配型‘CGPoint’的值键入‘CGFloat的’”不知道如何解决这个问题。需要帮助

这里是功能代码功能

extension HomeViewController : UIScrollViewDelegate {
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint,targetContentOffset targetContentOffSet: UnsafeMutablePointer<CGPoint>) {
    let  layOut = self.collectionView?.collectionViewLayout as! UICollectionViewFlowLayout
    let cellWidthIncludingSpacing = layOut.itemSize.width + layOut.minimumLineSpacing
    var offSet = targetContentOffSet.pointee.x
     let index = (offSet.x + scrollView.contentInset.left) / cellWidthIncludingSpacing //error Value of type 'CGFloat' has no member 'x'
    let roundedIndex = round(visibleWidth)
    offSet = CGPoint(x: roundedIndex * cellWidthIncludingSpacing - scrollView.contentInset.left,y: -scrollView.contentInset.top) //"Cannot assign value of type 'CGPoint' to type 'CGFloat'"
    targetContentOffSet.pointee = offSet


}
}
swift swift4.2
1个回答
2
投票

看这行代码的:

var offSet = targetContentOffSet.pointee.x

不斯威夫特推导出offSet什么类型的?在Xcode中,您可以选择单击它找出来,但是我们可以看到,它必须是CGPoint.x的类型,这是CGFloat

从你的函数的其余行,我猜你希望它是类型CGPoint,所以改成这样:

var offSet = targetContentOffset.pointee
© www.soinside.com 2019 - 2024. All rights reserved.