我正在尝试使用UIImagePickerController()制作自定义相机。我已经按照this教程进行操作,非常容易遵循。但是问题是,当我尝试从ViewDidLoad()/ ViewController的其他任何方法而不是didShoot(overlayView:CustomOverlayView)更改叠加层的hootButton的文本或图像时,我无法更改它。它没有给出任何错误,但也不会改变。这是我尝试更改文本或图像的方法-
picker = UIImagePickerController() //make a clean controller
picker.allowsEditing = false
picker.sourceType = UIImagePickerControllerSourceType.camera
picker.cameraCaptureMode = .photo
picker.showsCameraControls = false
picker.cameraFlashMode = UIImagePickerControllerCameraFlashMode.on
//customView stuff
let customViewController = CustomOverlayViewController(
nibName:"CustomOverlayViewController",
bundle: nil
)
let customView:CustomOverlayView = customViewController.view as! CustomOverlayView
customView.frame = self.picker.view.layer.frame
customView.shootButton.setTitle("Changed", for: UIControlState.normal)
customView.shootButton.setImage(UIImage(named: "changedbutton"), for: .normal)
customView.delegate = self
谁可以帮我这个事?我正在使用Swift 3和Xcode 8.2.1。提前致谢。
最佳答案
我的主要问题是,当我尝试更改任何文本或图像时,我正在创建另一个CustomOverlayView参考和一个新的选择器。因此,当我更改任何文本或图像时,它正在更改,但是由于以前的选择器仍在视图中而没有显示。使用一个选择器和一个CustomOverlayView引用就可以了。
关于ios - 无法访问叠加层的组件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41847854/