问题描述
我尝试完成以下结果:
将UIImagePickerController的框架设置为,让我们说200 x 200,
设置我的框架在右下角(就像Facetime / Skype)
并显示前/后)相机流。
这是我的代码,由于某种原因,setFrame不工作!
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.view.frame = CGRectMake(600,400,200,200); //不工作!
self.picker.toolbarHidden = YES;
self.picker.wantsFullScreenLayout = NO;
self.picker.delegate = delegate;
[self presentViewController:self.picker animated:YES completed:nil];
-
我看过类似的SO主题,讨论如何
在UIImagePickerController顶部设置视图,而不是我的问题。
- p>我已尝试将self.picker添加到自定义UIView大小为200 x 200但仍然
没有成功。
我在这里做错了什么?
您需要使用 cameraViewTransform 属性c> UIImagePicker 调整其相机框架。此属性接受您所做的任何 CGAffineTransform
(例如缩放,旋转,反转,翻译等)。
,如果您想将相机视图向下移动50点,并将相机视图缩放为其原始大小的1.2倍,则可以这样做:
CGAffineTransform transform = CGAffineTransformMakeTranslation(0.0f,50.0f);
transform = CGAffineTransformScale(transform,1.2f,1.2f);
imagePicker.cameraViewTransform = transform;
I'm trying to accomplish the following result:
Set the frame of my UIImagePickerController to, lets say 200 x 200,
Set my frame at the bottom-right corner (just like Facetime/Skype does)
and show the front/rear (doesn't matter) camera stream.
Here's my code, for some reason, setFrame is not working!
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.view.frame = CGRectMake(600, 400, 200, 200); // NOT WORKING !!!
self.picker.toolbarHidden = YES;
self.picker.wantsFullScreenLayout = NO;
self.picker.delegate = delegate;
[self presentViewController:self.picker animated:YES completion:nil];
I've looked at similar SO topics but they all talk about how to
set a view on top of the UIImagePickerController, not my problem at all.
I've tried adding self.picker to a custom UIView sized 200 x 200 but still
no success.
What am i doing wrong here?
Thanks
You need to use the cameraViewTransform
property of UIImagePicker
to adjust its camera frame. This property accept any CGAffineTransform
you made (e.g. scaling, rotating, inverting, translating, etc).
For example, if you want to move the camera view down by 50 points and scale the camera view 1.2x its original size, this is how you'll do it:
CGAffineTransform transform = CGAffineTransformMakeTranslation(0.0f, 50.0f);
transform = CGAffineTransformScale(transform, 1.2f, 1.2f);
imagePicker.cameraViewTransform = transform;
这篇关于iOS UIImagePickerController,设置框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!