2013-11-25 261 views
1

我正在iOS 7中編寫QR碼識別器。我有一個captureOutput:didOutputMetadataObjects:fromConnection:我的相機視圖捕獲的代理。一旦QR碼被識別,我可以提取拐角的座標。我試圖圍繞公認的QR碼繪製一個矩形。這令人驚訝地很難做到。最簡單的方法是什麼?我將不得不有一種方法來更新QR碼周圍的框的路徑。從座標繪製矩形

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection 
{ 
    if ([metadataObjects count] < 1) { 
     return; 
    } 
    for (id item in metadataObjects) { 
     if ([item isKindOfClass:[AVMetadataMachineReadableCodeObject class]]) { 
      if (item) { 
       NSLog(@"%@", [item stringValue]); 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [self drawRect:[item corners]]; 
       }); 
      } 
     } 
    } 
} 

基本上,問題是我該如何實現drawRect:圍繞一個可識別的QR碼繪製一個矩形?

+1

用你到目前爲止嘗試過的方法更新你的問題。 – rmaddy

回答

0

只需使用AVMetadataMachineReadableCodeObject的points屬性中的四個點在您的視圖或自定義疊加視圖中繪製CGBezierPath即可。

+0

當沒有檢測到元數據對象時,您可以點擊如何更新/隱藏它嗎? – user3003787

+0

檢查是否捕獲任何東西。如果是這樣,循環並繪製它們。你可能會發現添加一些BOOL或NSUInteger值來檢查drawRect很容易: – uchuugaka