我想知道如何在预定义的帧(而不是整个屏幕)内打开相机。当视图加载时,我有一个盒子,在里面,我想显示相机看到的内容。我不想拍照,只是基本上使用相机作为取景器。我搜索了这个网站,还没有找到我正在寻找的东西。请帮忙。
谢谢!
托马斯
更新1:
这是我到目前为止所尝试的内容。
1。)我将UIImageView添加到我的xib中 2.)将以下插座连接到IB中的UIImageView
IBOutlet UIImageView * cameraWindow;
3.)我将以下代码放在 viewWillAppear
中-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:picker animated:YES];
NSLog(@"viewWillAppear ran");
}
但是这个方法没有运行,因为我的控制台缺少NSLog语句。请帮忙!
谢谢,
托马斯
更新2:
好的,我把代码放在 viewDidLoad 中运行,但我的相机仍然没有出现......有什么建议吗?任何人....?我一直在阅读UIImagePickerController class reference,但我不确定如何理解它。我还在学习iPhone,所以这有点挣扎。请帮忙!
- (void)viewDidLoad
{
[super viewDidLoad];
// Create a bool variable "camera" and call isSourceTypeAvailable to see if camera exists on device
BOOL camera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
// If there is a camera, then display the world throught the viewfinder
if(camera)
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
// Since I'm not actually taking a picture, is a delegate function necessary?
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:picker animated:YES];
NSLog(@"Camera is available");
}
// Otherwise, do nothing.
else
NSLog(@"No camera available");
}
谢谢!
托马斯
更新3:
A-HA!在Apple Class Reference上找到了这个。
讨论
代表收到通知 当用户选择图像或电影时, 或退出选择器界面。该 代表还决定何时解雇 选择器界面,所以你必须 提供代表使用选择器。如果 这个属性是零,选择器是 如果你试图立即解雇 展示它。
现在就和代表一起玩吧。然后我要读一下代表的wtf。向后?无论如何:-p
更新4:
该类的两个委托函数是 - imagePickerController:didFinishPickingMediaWithInfo: - imagePickerControllerDidCancel:
因为我实际上并不想选择图像或给用户取消选项,所以我只是定义方法。他们永远不应该跑......我想。
答案 0 :(得分:0)
添加
[拾取器 dismissModelViewControllerAnimated:YES];
委派方法主体。
它会驳回观点。