我想继承UIImagePickerController。我想为它添加cameraOverlays。但是,我想借助故事板来做到这一点。所以我将UIImagePickerController连接到Storyboard中的UIViewController,并带有一个测试按钮。这是我的代码。
import UIKit
class ImagePickerViewController: UIImagePickerController {
@IBOulet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
self.cameraOverlayView?.addSubview(button)
}
}
但是,使用此代码,我收到错误found nil while executing the code
。我希望我的问题有道理。基本上我想添加相机覆盖,而无需以编程方式编写所有内容。我想在故事板中设计叠加层,然后以某种方式调用它们并将它们添加到我的相机叠加层。我怎样才能做到这一点?
答案 0 :(得分:3)
您应该使用自定义控件创建一个视图,并将其分配给属性cameraOverlayView,默认情况下cameraOverlayView为nil,您必须将其设置为某个视图。
您不应该为UIImagePickerController创建子类,而是为叠加层创建自定义视图,而实例化pickerController的对象应该只是将其分配给该属性。这样,你不必按照official docs(强调我的)来继承子类:
重要
UIImagePickerController类仅支持纵向模式。 此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改,但有一个例外。您可以将自定义视图分配给cameraOverlayView属性,并使用该视图显示其他信息或管理相机界面与代码之间的交互。