iOS UIImagePickerController,设置框架 [英] iOS UIImagePickerController, set frame

查看:240
本文介绍了iOS UIImagePickerController,设置框架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试完成以下结果:



将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];




  1. 我看过类似的SO主题,讨论如何



    在UIImagePickerController顶部设置视图,而不是我的问题。


  2. 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];

  1. 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.

  2. 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,设置框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆