Использование вида из раскадровки для ImagePicker

Я пытаюсь создать наложение поверх ImagePicker и обнаружил, что могу создавать UIView программным способом, но предпочел бы использовать UIView, которым я могу манипулировать в раскадровке.

Как вы можете видеть из фрагмента кода ниже, я назначил UIImagePickerControllerDelegate моему ViewController, создал средство выбора изображений и имею метод для назначения представления наложения, которое я хочу. Если я попытаюсь сослаться на UIView, который является выходом, связанным с UIView, который существует в раскадровке, он не появится. Если создать его программно, все хорошо. Как я могу назначить его UIView, на который я хочу перетащить элементы управления в раскадровку?

Заранее спасибо за любые советы / рекомендации.

Ура, Карл

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {  
// UIView for telemetry data  
@IBOutlet weak var telemetryPanel: UIView!  

...  

override func viewDidAppear(animated:bool) {  
      ...  
      let cameraImagePicker = UIImagePickerController()  
      ...  

      // Call method to create a custom overlay for the camera  
      cameraImagePicker.cameraOverlayView = self.customViewForImagePicker(cameraImagePicker)  

 }  

func customViewForImagePicker(imagePicker: UIImagePickerController!) -> UIView {  
    // TODO: - Assigning the view to the telemetry panel does not work  
// let view:UIView = self.telemetryPanel  
// view.backgroundColor = UIColor.whiteColor()  
// view.alpha = 0.25  
// return view  

    // Creating the view programmatically overlays it  
    let cameraAspectRatio:CGFloat = 4.0 / 3.0;  
    let screenSize = UIScreen.mainScreen().bounds.size  
    let imageWidth = floorf(Float(screenSize.width) * Float(cameraAspectRatio))  
    let view: UIView = UIView(frame: CGRectMake(0, screenSize.height-65, CGFloat(imageWidth), 65))  
    view.backgroundColor = UIColor.whiteColor()  
    view.alpha = 0.25  
    return view  

}  

1 ответ

При инициализации представления, созданного в конструкторе интерфейса, вам необходимо загрузить его, используя NSBundle.mainBundle().loadNibNamed()

Проверьте этот ответ о том, как это сделать.

Другие вопросы по тегам