Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UiImagePickerController拍摄问题_Iphone_Ios_Ios5_Uiimagepickercontroller - Fatal编程技术网

Iphone UiImagePickerController拍摄问题

Iphone UiImagePickerController拍摄问题,iphone,ios,ios5,uiimagepickercontroller,Iphone,Ios,Ios5,Uiimagepickercontroller,我在创建自己的自定义“拍照”按钮时遇到一些问题。基本上,当我移除默认控件时,相机不再执行快门动画或经过编辑过程,而是直接转到代理方法 这里有一些代码。起初我使用的是默认布局,如下所示: (顺便说一句,我已经删除了用于确定硬件可用性的if语句——它们是无关的。) 使用此代码,当我按下默认的“拍摄照片”按钮时,将触发快门动画,并显示“移动和缩放”视图。按“选择”后,将调用代理,我可以通过info访问编辑结果 这是我的新初始化代码,带有一个自定义的“拍照”按钮,没有其他功能;顺便说一下,我正在我的Vi

我在创建自己的自定义“拍照”按钮时遇到一些问题。基本上,当我移除默认控件时,相机不再执行快门动画或经过编辑过程,而是直接转到代理方法

这里有一些代码。起初我使用的是默认布局,如下所示:

(顺便说一句,我已经删除了用于确定硬件可用性的if语句——它们是无关的。)

使用此代码,当我按下默认的“拍摄照片”按钮时,将触发快门动画,并显示“移动和缩放”视图。按“选择”后,将调用代理,我可以通过
info
访问编辑结果

这是我的新初始化代码,带有一个自定义的“拍照”按钮,没有其他功能;顺便说一下,我正在我的ViewController的ViewDidDisplay方法中初始化这个UIImagePickerController

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;
picker.allowsEditing = YES;

UIButton *shoot = [[UIButton alloc] initWithFrame:CGRectMake(110, 420, 100, 40)];
[shoot setTitle:@"Shoot" forState:UIControlStateNormal];
[shoot.titleLabel setTextColor:[UIColor whiteColor]];
[shoot addTarget:picker action:@selector(takePicture) forControlEvents:UIControlEventTouchUpInside];

picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[picker.cameraOverlayView addSubview:shoot];
picker.showsCameraControls = NO;

picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;

[self presentModalViewController:picker animated:YES];
在本例中,当我点击自定义按钮时,不会触发动画,不会显示编辑屏幕,会立即调用代理

有趣的是,如果我在上面的示例中将
showsCameraControls
属性更改为
YES
,那么我的自定义按钮的行为与第一个示例中默认按钮的行为完全相同

在这个问题上,我很困惑,我是否需要在
didFinishPickingMediaWithInfo
中做些什么来调用图像编辑器,或者我只是在初始化过程中遗漏了什么

我使用的是Xcode 4.3和iOS 5.1(该应用程序面向5.0)

非常感谢任何帮助;干杯

显然,“移动和裁剪”功能是默认相机控件的一部分

当您使用照片库作为源时,唯一的选项是默认值,因此它始终有效

最后,我使用一个简单的滚动视图和一些叠加视图来表示裁剪框,编写了自己的“移动和裁剪”视图


不太难,只需要根据UIScrollView的缩放因子和内容偏移量做一些计算。

你应该开源你的移动和裁剪解决方案=)+1,因为你在一个月后懒得回来发布你的解决方案!在我每周工作60-80小时完成这个项目后,我将组织代码并在github上发布,请继续关注……我已经花了一年的时间来扩展项目范围了吗?
UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;
picker.allowsEditing = YES;

UIButton *shoot = [[UIButton alloc] initWithFrame:CGRectMake(110, 420, 100, 40)];
[shoot setTitle:@"Shoot" forState:UIControlStateNormal];
[shoot.titleLabel setTextColor:[UIColor whiteColor]];
[shoot addTarget:picker action:@selector(takePicture) forControlEvents:UIControlEventTouchUpInside];

picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[picker.cameraOverlayView addSubview:shoot];
picker.showsCameraControls = NO;

picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;

[self presentModalViewController:picker animated:YES];