对成员'下标'的模糊引用

Jul*_*sen 6 uiimageview uicolor swift

我收到此错误:"当我尝试更改颜色时,对成员'下标'的模糊引用":

struct color {
    var r : Float
    var g : Float
    var b : Float
}

func setPixels(image:[color], pixel: Int) {
    let alpha: Float = 1.0
    let pixelView = view.viewWithTag(pixel) as! UIImageView
    pixelView.backgroundColor = UIColor(
        red: image[pixel].r, //Error: Ambiguous reference to member 'subscript'
        green: image[pixel].g,
        blue: image[pixel].b,
        alpha: alpha)
}
Run Code Online (Sandbox Code Playgroud)

Leo*_*bus 2

Float 它与 CGFloat 不一样。您必须将 CGFloat 传递给 UIColor。注意:您应该以大写字母开头来命名结构。

struct Color {
    let r: CGFloat
    let g: CGFloat
    let b: CGFloat
}

class ViewController: UIViewController{
    func setPixels(image: [Color], pixel: Int) {
        let alpha: CGFloat = 1
        let pixelView = view.viewWithTag(pixel) as! UIImageView
        pixelView.backgroundColor = UIColor(
            red: image[pixel].r,
            green: image[pixel].g,
            blue: image[pixel].b,
            alpha: alpha
        )
    }
}
Run Code Online (Sandbox Code Playgroud)