【问题标题】:Cannot assign value of type 'CGPoint' to type 'CGFloat'无法将“CGPoint”类型的值分配给“CGFloat”类型
【发布时间】:2019-02-09 13:24:07
【问题描述】:

首先我尝试获取布局并计算单元格的宽度,包括间距。之后我尝试计算当前显示项目的索引。最终结果我希望滚动视图计数并结束吸毒每当我停止滚动但它给我一个计算错误。 “无法将'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】:

    看看你的这行代码:

    var offSet = targetContentOffSet.pointee.x
    

    Swift 为offSet 推断出什么类型?你可以在Xcode中option-click找到,但是我们可以看到它必须是CGPoint.x的类型,也就是CGFloat

    从你的函数的其余行,我猜你希望它输入CGPoint,所以把它改成这样:

    var offSet = targetContentOffset.pointee
    

    【讨论】:

    • 谢谢先生。你只是解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 2019-12-03
    • 2017-08-07
    • 2021-03-08
    • 2016-12-24
    相关资源
    最近更新 更多