Я пытаюсь создать пользовательский вид камеры, в основном. Я застрял, меняя размер изображения в UIImagePicker. По представлению изображения я имею в виду окно, отображающее вид камеры. Надеюсь, это будет более ясно из картины. Это вид внутри этого красного квадрата (я рисовал этот красный квадрат вручную, чтобы показать вам, не думаю, что это код).Пользовательский просмотр камеры - Невозможно изменить размер рамки камерыLayout UIImagePicker, Swift
Все, что я пытался до сих пор не мог помочь мне изменить размер этой красной прямоугольной области. Ниже то, что я до сих пор:
@IBAction func takePhoto(sender: UIButton) {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera){
imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .Camera
imagePicker.allowsEditing = false
imagePicker.showsCameraControls = false
//Create view
let customViewController = CustomCameraViewController(
nibName:"CustomCameraViewController",
bundle: nil
)
let customView:CustomCameraView = customViewController.view as! CustomCameraView
//Assignments
customView.frame = self.imagePicker.view.frame
customView.delegate = self
self.imagePicker.cameraOverlayView?.frame.size = customView.image.frame.size
presentViewController(imagePicker,
animated: true,
completion: {
self.imagePicker.cameraOverlayView = customView
}
)
}else{
//Alert
let alert = UIAlertController(title: "Üzgünüz, kameranızı açamadık!", message: "Telefonunuz kamerayı desteklemiyor veya açmamıza izin verilmemiş. İzin vermek isterseniz ayarlardan izni açabilirsiniz.", preferredStyle: UIAlertControllerStyle.Alert)
//Creating actions
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default){
UIAlertAction in
NSLog("OK is Pressed. Proceeding...")
}
//Adding actions
alert.addAction(okAction)
//Display alert
self.presentViewController(alert, animated: true, completion: nil)
}
}
Я пытаюсь выполнить весь пользовательский вид вещь из файла XIb, и это связано с классом CustomCameraView. Я настроил два метода делегата на CustomCameraView, способный использовать их, но это не обязательно для этого вопроса, поэтому я не буду размещать код, но все же думаю, что вам, возможно, понадобится знать. Что связано с вопросом является файл XIB, пожалуйста, найти его ниже:
Кнопки обнаруживаются в том, где они должны быть, однако я не могу использовать этот ImageView. Я создал представление изображения здесь, так что я могу взять его frame.size и установить в frame.size сборщика (вы можете увидеть это в моем списке кодов). И из coruse ссылка на это изображение выглядит в классе CustomCameraView, поэтому я достигаю этого класса, как вы могли заметить.
Я пробовал целый день честно, но я не мог найти решение для этого ни в сети, ни в сети. Я также прочитал AVFoundation, но похоже, что нет четкого объяснения того, как установить размер кадра этого представления в документах AVFoundation, как в UIImagePicker, поэтому я просто решил спросить вас, ребята, поскольку я настолько потерян в проекте и не могу думать о другом прямо сейчас.
Я был бы очень признателен, если вы можете мне помочь. Дайте мне знать, если вам нужна дополнительная информация.
Спасибо!
Вы должны установить CameraViewTransform изображения, чтобы получить его в нужном вам положении/масштабе. Камера имеет собственное соотношение сторон для разных режимов (фото/видео) и, таким образом, устойчива к тому, что ее можно установить только на какое-то произвольное значение. – beyowulf
Спасибо за ваш комментарий. Можете ли вы дать мне небольшой пример использования cameraViewTransform? Я был бы признателен, и если вы сделаете это, сделайте это как ответ, чтобы его было легче увидеть. –