无法访问叠加层组件

时间:2017-01-25 09:27:47

标签: ios swift xcode8

我正在尝试使用 UIImagePickerController()制作自定义相机。我已经按照this教程进行操作,这很容易理解。但问题是,当我尝试更改叠加的shootButton的文本,或来自 viewDidLoad()/ ViewController viewDidLoad()/任何其他方法的图像时比 didShoot(overlayView:CustomOverlayView),我无法改变它。它没有给出任何错误,但也没有改变。以下是我尝试更改文字或图片的内容 -

    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。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我的主要问题是当我尝试更改任何文本或图像时,我正在创建另一个CustomOverlayView引用和一个新的选择器。因此,当我更改任何文本或图像时,它正在发生变化,但由于之前的选择器仍在视图中,因此无法显示。使用一个选择器和一个CustomOverlayView引用就可以了。