我有崩溃信息:
代码后* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'此设备不支持设置focusPointOfInterest。使用isFocusPointOfInterestSupported'
:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[device setFocusPointOfInterest:CGPointMake(100, 100)];
}
有没有办法像 相机胶卷 那样进行对焦?
答案 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
}
希望这有帮助!