2

我有崩溃消息:

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

代码后:

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

有没有办法像相机胶卷一样聚焦?

4

3 回答 3

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
    }
}
于 2013-07-18T16:15:15.760 回答
0

您需要setFocusPointOfInterest通过使用来检查是否被接受,[device focusPointOfInterestSupported]因为并非所有 iOS 设备都支持它,如果我没记错的话,它也因前置/后置摄像头而异

于 2013-03-12T17:05:43.277 回答
0

乔科托帕西所说的。

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

编辑:

代码将类似于:

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

希望这可以帮助!

于 2013-03-12T19:36:51.683 回答