我正在尝试从以下问题中应用颜色选择器。
Simple swift color picker popover (iOS)
我设置的方式是将颜色选择器类附加到主视图控制器中的UIView上。 Michael Ros编写的代码有效,但是当我尝试使用主视图控制器访问它时,什么都没有发生。下面是我在视图控制器中使用的代码。它是否正确?我已经解决了其他问题,但不确定自己做错了什么。
class ViewController: UIViewController {
weak var colorPickerDelegate: ColorPickerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
self.colorPickerDelegate = self
}
}
}
extension ViewController: colorPickerDelegate {
func colorChanged(color: UIColor) {
print(color)
}
}
可以在附加的问题上找到颜色选择器代码,因为我不确定是否允许复制代码。
感谢您的帮助
答案 0 :(得分:1)
您应该订阅UIView并将其分配给视图控制器视图,然后将ColorPickerView的委托设置为视图控制器:
ColorPickerView.swift
class ColorPickerView : UIView {
weak var delegate: ColorPickerDelegate?
// Other code from Michael Ros's adaptation.
}
ViewController.swift
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)
}
}
答案 1 :(得分:0)
您应该更换
colorChanged -> colorDidChange !
如果您委托的是ColorPickerDelegate;我想是