Я расширил UIImagePickerController, но я не уверен, как отобразить мой пользовательский оверлей. Тот, который представлен в раскадровке, кажется, игнорируется, и добавление его как отдельного представления, похоже, тоже не помогает. Мне интересно, делаю ли я это в правой части жизненного цикла или есть ли дополнительный атрибут, который мне нужно установить?Добавление наложения в пользовательский UIImagePickerController?
class VideoRecorderViewController: UIImagePickerController {
var overlayView : UIView?
override func viewDidLoad() {
super.viewDidLoad()
self.mediaTypes = [kUTTypeMovie as String]
self.sourceType = .Camera
self.cameraCaptureMode = .Video
self.allowsEditing = false
self.delegate = delegate
self.showsCameraControls = false
self.overlayView = (NSBundle.mainBundle().loadNibNamed("RecorderOverlayView", owner: self, options: nil)[0] as! UIView)
if (self.overlayView != nil) {
self.overlayView?.frame = self.cameraOverlayView!.frame
self.cameraOverlayView = self.overlayView;
}
}
}
Другие примеры, которые работают, имеют UIImagePickerController созданный из другого UIView, но я предпочел бы избежать иначе пустой UIView для простого создания UIImagePickerController.
Использование Swift 2
Спасибо за информацию. Я хочу, чтобы камера автоматически включала вид вида, должен ли я помещать presentViewController() в функцию viewDidAppear(), или есть ли лучшее место для этого? –
В 'viewDidAppear' или' viewWillAppear' Вы можете сказать что-то вроде 'self.presentViewController (imagePickerController, animated: true, completion: ({imagePickerController.startVideoCapture()})' Не уверен, что это сработает, если у вас нет камеры разрешений. В целом считается лучшим UX, позволяющим пользователю начать запись. – beyowulf