相机焦点ios

时间:2013-03-12 16:19:21

标签: ios objective-c cocoa-touch camera

我有崩溃信息:

  

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'此设备不支持设置focusPointOfInterest。使用isFocusPointOfInterestSupported'

代码后

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [device setFocusPointOfInterest:CGPointMake(100, 100)];
}

有没有办法像 相机胶卷 那样进行对焦?

3 个答案:

答案 0 :(得分:1)

答案的组合,但这可以帮助你。

您需要将触摸点开始触摸或触摸手势转换为0-1刻度。

因此,检查您的设备是否具有焦点,然后转换点:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // get device reference...

    if ([device isFocusPointOfInterestSupported]) {
        CGPoint point = [touch locationInView:self.myCameraView];
        float newX = point.x / self.myCameraView.frame.size.width;
        float newY = point.y / self.myCameraView.frame.size.height;
        [device setFocusPointOfInterest:CGPointMake(newX, newY)];
    }
    else {
        // Focus not supported
    }
}

答案 1 :(得分:0)

您需要使用setFocusPointOfInterest作为并不是所有iOS设备都支持来检查是否接受[device focusPointOfInterestSupported],如果我没记错,则前/后相机会因此而异井

答案 2 :(得分:0)

JoeCortoPassi说的话。

所以基本上做一个if循环检查[device focusPointOfInterestSupported]是否返回true然后执行你的[device setFocusPointOfInterest:CGPointMake(100,100)];

编辑:

代码类似于:

if ([device isFocusPointOfInterestSupported]){
    [device setFocusPointOfInterest:CGPointMake(100, 100)];
}else{
     // Not supported
}

希望这有帮助!