“无法使用Swift中收到的类型为'((),CGFloat''的参数列表调用'CGPointMake'

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

我收到了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是一个浮动。

ios swift xcode6
4个回答
0
投票

你必须把它投射到CGFloat

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

2
投票

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


2
投票

CGPoint采用CGFloat,而不是Float,你应该在使用之前进行投射

CGFloat(number)

2
投票

两件事:一,你的xForValue函数没有声明一个返回类型。它应该是:

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

二,正如其他回复中所说,CGPointMake采用CGFloat,所以你需要让xForValue返回一个CGFloat,或者投射它,正如其他答案所说的那样。

© www.soinside.com 2019 - 2024. All rights reserved.