Ios Swift-UIView委托协议未返回值

Ios Swift-UIView委托协议未返回值,ios,swift,delegates,protocols,color-picker,Ios,Swift,Delegates,Protocols,Color Picker,我正在尝试应用下面问题中的颜色选择器 我设置它的方式是将颜色选择器类附加到主视图控制器中的UIView。michaelros的代码是有效的,但是当我尝试使用主视图控制器访问它时,什么都没有发生。下面是我在视图控制器中使用的代码。这是正确的吗?我反复考虑了其他问题,我不确定我做错了什么 class ViewController: UIViewController { weak var colorPickerDelegate: ColorPickerDelegate? override fu

我正在尝试应用下面问题中的颜色选择器

我设置它的方式是将颜色选择器类附加到主视图控制器中的UIView。michaelros的代码是有效的,但是当我尝试使用主视图控制器访问它时,什么都没有发生。下面是我在视图控制器中使用的代码。这是正确的吗?我反复考虑了其他问题,我不确定我做错了什么

class ViewController: UIViewController {
  weak var colorPickerDelegate: ColorPickerDelegate?

override func viewDidLoad() {
    super.viewDidLoad()
    self.colorPickerDelegate = self
    } 
  }
}

extension ViewController: colorPickerDelegate {
func colorChanged(color: UIColor) {
   print(color)
  }
}
颜色选择器代码可以在附加的问题上找到,因为我不确定是否允许复制代码

感谢您的帮助

您应该更换

颜色改变->颜色改变!

如果您的委托是ColorPickerDelegate;我认为是这样的

您应该将UIView子类分配给view controller视图,然后将ColorPickerView的委托设置为view controller:

ColorPickerView.swift

class ColorPickerView : UIView {

weak var delegate: ColorPickerDelegate?
// Other code from Michael Ros's adaptation.
}
import UIKit

class ViewController: UIViewController {

    lazy var colorPickerView = ColorPickerView(frame: CGRect(origin: .zero, size: CGSize(width: self.view.frame.width, height: 300)))

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = .white

        self.colorPickerView.delegate = self

        self.view.addSubview(colorPickerView)

    }


}

extension ViewController: ColorPickerDelegate {
    func colorDidChange(color: UIColor) {
        print(color)
    }
}
ViewController.swift

class ColorPickerView : UIView {

weak var delegate: ColorPickerDelegate?
// Other code from Michael Ros's adaptation.
}
import UIKit

class ViewController: UIViewController {

    lazy var colorPickerView = ColorPickerView(frame: CGRect(origin: .zero, size: CGSize(width: self.view.frame.width, height: 300)))

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = .white

        self.colorPickerView.delegate = self

        self.view.addSubview(colorPickerView)

    }


}

extension ViewController: ColorPickerDelegate {
    func colorDidChange(color: UIColor) {
        print(color)
    }
}

很抱歉,这是个打字错误