【问题标题】:"Cannot invoke 'CGPointMake' with an argument list of type '((), CGFloat)'" received in Swift在 Swift 中收到“无法使用类型为‘((), CGFloat)’的参数列表调用‘CGPointMake’”
【发布时间】:2015-05-13 07:36:43
【问题描述】:

我收到了CGPointMake() 的此错误消息

/Users/MNurdin/Documents/iOS/RevivalxSwiftSlider/RevivalxSwiftSlider/RangeSlider.swift:66:28: 无法使用“((), CGFloat)”类型的参数列表调用“CGPointMake”

我的代码

override func layoutSubviews() {
    _minThumb.center = CGPointMake(self.xForValue(selectedMinimumValue), self.center.y);

}

func xForValue(value: Float){
        return (self.frame.size.width-(_padding*2))*((value - minimumValue) / (maximumValue - minimumValue))+_padding;
    }

selectedMinimumValue 是一个浮点数。

【问题讨论】:

  • 请为xForValue添加代码
  • 请检查我编辑的问题。

标签: ios swift xcode6


【解决方案1】:

如果您的 xForValue 方法有返回值,您可以尝试强制转换 Float(self.xForValue(selectedMinimumValue)) 吗?

【讨论】:

  • 这不是答案
【解决方案2】:

CGPoint 采用 CGFloat,而不是 Float,你应该在使用前先转换它

CGFloat(number)

【讨论】:

    【解决方案3】:

    两件事: 一,您的 xForValue 函数尚未声明返回类型。应该是:

    func xForValue(value: Float) -> Float {
        return (self.frame.size.width-(_padding*2))*((value - minimumValue) / (maximumValue - minimumValue))+_padding;
    }
    

    两个,正如其他回复中所说,CGPointMake 需要一个 CGFloat,因此您需要让 xForValue 返回一个 CGFloat,或者像其他答案所说的那样强制转换它。

    【讨论】:

      【解决方案4】:

      你必须把它转换成 CGFloat

      _minThumb.center = CGPointMake(CGFloat(self.xForValue(selectedMinimumValue)), self.center.y);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多