Использование вида из раскадровки для 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()
Проверьте этот ответ о том, как это сделать.