Swift - UIView 委托协议未返回值
Swift - UIView Delegate Protocol not returning value
我正在尝试应用以下问题中的颜色选择器。
Simple swift color picker popover (iOS)
我的设置方式是将颜色选择器 class 附加到主视图控制器中的 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)
}
}
颜色选择器代码可以在附加问题中找到,因为我不确定是否允许复制代码。
感谢您的帮助
你应该更换
colorChanged -> colorDidChange !
如果你委托的是 ColorPickerDelegate;我也这么认为
您应该继承 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)
}
}
我正在尝试应用以下问题中的颜色选择器。
Simple swift color picker popover (iOS)
我的设置方式是将颜色选择器 class 附加到主视图控制器中的 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)
}
}
颜色选择器代码可以在附加问题中找到,因为我不确定是否允许复制代码。
感谢您的帮助
你应该更换
colorChanged -> colorDidChange !
如果你委托的是 ColorPickerDelegate;我也这么认为
您应该继承 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)
}
}