Objective c iOS 6设备和iPhone 4(iOS7)的摄像头变焦功能不可用

Objective c iOS 6设备和iPhone 4(iOS7)的摄像头变焦功能不可用,objective-c,iphone,ios7,barcode-scanner,avcapturedevice,Objective C,Iphone,Ios7,Barcode Scanner,Avcapturedevice,我正在开发条形码阅读器应用程序,在其中我想通过点击相机来缩放相机视图。我使用了以下方法来缩放相机视图,但它不适用于iOS6和iPhone4iOS7设备。请任何人在这方面帮助我: if ([self.device respondsToSelector:@selector(setActiveFormat:)] && [self.device.activeFormat respondsToSelector:@selector(videoMaxZoomFactor)] &

我正在开发条形码阅读器应用程序,在其中我想通过点击相机来缩放相机视图。我使用了以下方法来缩放相机视图,但它不适用于iOS6和iPhone4iOS7设备。请任何人在这方面帮助我:

if ([self.device respondsToSelector:@selector(setActiveFormat:)] &&
        [self.device.activeFormat respondsToSelector:@selector(videoMaxZoomFactor)] &&
        [self.device respondsToSelector:@selector(setVideoZoomFactor:)]){
        float maxZoom = 0;
        if ([self.device.activeFormat respondsToSelector:@selector(videoZoomFactorUpscaleThreshold)]){
            maxZoom = self.device.activeFormat.videoZoomFactorUpscaleThreshold;
        } else {
            maxZoom = self.device.activeFormat.videoMaxZoomFactor;
        }
        float maxZoomTotal = self.device.activeFormat.videoMaxZoomFactor;
//        maxZoom =2.0;
//        maxZoomTotal = maxZoomTotal +2;
        if ([self.device respondsToSelector:@selector(setVideoZoomFactor:)] && maxZoomTotal > 1.1){
            videoZoomSupported = true;
            if (param_ZoomLevel1 != 0 && param_ZoomLevel2 != 0){
                if (param_ZoomLevel1 > maxZoomTotal * 100){
                    param_ZoomLevel1 = (int)(maxZoomTotal * 100);
                }
                if (param_ZoomLevel2 > maxZoomTotal * 100){
                    param_ZoomLevel2 = (int)(maxZoomTotal * 100);
                }
                firstZoom = 0.01 * param_ZoomLevel1;
                secondZoom = 0.01 * param_ZoomLevel2;
            } else {
                if (maxZoomTotal > 2){
                    if (maxZoom > 1.0 && maxZoom <= 2.0){
                        firstZoom = maxZoom;
                        secondZoom = maxZoom * 2;
                    } else
                        if (maxZoom > 2.0){
                            firstZoom = 2.0;
                            secondZoom = 4.0;
                        }
                }
            }
        } else {
        }

activeFormat在iOS 7.0及更高版本中可用。在iOS 6中,您的else空语句将被激发。关于iPhone4,您需要询问您的设备是否可以进行缩放。它可能不行。你能告诉我怎么才能让它变焦吗?NSLog@Formats支持:%@、[self.device.formats description];在if语句之前添加它,并在iPhone4中运行,必须告诉您支持的格式。更多信息请点击此处: