我正在制作一款可自行拍摄全景照片的iOS应用

时间:2014-06-25 08:26:55

标签: ios iphone camera

iPhone可以站在地面上,然后当它振动时,它会旋转在地面上 所以我们可以使用此功能拍摄全景照片。 实际上有一个应用程序功能与我上面写的相同。该应用程序被称为" Cycloramic" 它可能毫无意义,但我想构建这个应用程序来研究iOS编程。

现在我遇到了一个问题,它只是振动,忽略了拍照的一部分。

这是代码。

当我按下按钮时,它会启动。

首先,拍摄照片然后振动直到它旋转29度。然后还需要一张照片。 这就是它的功能。

但是,当我启动应用程序时,它只会振动并且根本不会拍照。

它出了什么问题?

if([self.rangeSelectionButton.title isEqualToString:@"90"])
{
    range = 90;
}
else if ([self.rangeSelectionButton.title isEqualToString:@"180"])
{
    range = 180;
}
else if ([self.rangeSelectionButton.title isEqualToString:@"270"])
{
    range = 270;
}
else if ([self.rangeSelectionButton.title isEqualToString:@"360"])
{
    range = 360;
}
else
{
    return;
}


switch (range)
{
    case 90:
        [self.imagePickerController takePicture];
        [self.motionSensor updateGyro];
        self.beforeRoll = self.motionSensor.roll;

        for(;(self.motionSensor.roll - self.beforeRoll) <= 29;){
            AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
            [self.motionSensor updateGyro];
        }

        [self.imagePickerController takePicture];

        [self.cameraTimer fire];
        break;
    case 180:

        break;
    case 270:

        break;
    case 360:

        break;

    default:
        break;
}

我在上面发布了整个代码。 if语句检查我想要拍照的角度。

根据角度,switch语句起作用。我只写了90个角度。 感谢。

1 个答案:

答案 0 :(得分:1)

来自takePicture的{​​{3}}:

  

在捕获图像时调用此方法无效。   您必须等到关联的委托对象收到   之前有docs条消息   你可以拍摄另一张照片。

您确定是否已捕获原始图像?

我不认为UIImagePickerController是用于您正在尝试做的事情的正确库。使用imagePickerController:didFinishPickingMediaWithInfo:来获取您想要的图片可能更好。

Apple还提供了示例项目AVFoundation,以展示如何实现这一目标。