2017-05-24 20 views
0

私はバーコードを読み取るのにAVCaptureMetadataOutputを使用しています。それは何かと一致したとき、それは... ..デリゲートメソッドボタンが押されたときだけバーコードをスキャンする

captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!)

を呼び出します。

ユーザーがボタンを指で押さない限り、どのように一致を無視することができますか?

+0

コール' FUNC setMetadataObjectsDelegate(DispatchQueue _ objectsDelegate:AVCaptureMetadataOutputObjectsDelegate!objectsCallbackQueueをキュー!)? – Larme

答えて

1

ボタンに複数のアクションを追加できます。ユーザーが押し下げたときにキャッチし、読み取りバーコードの状態を設定します。ユーザーが行かせるときにキャッチし、読み取られたバーコードの状態をクリアします。あなたがボタンを保持するために開始し `だけ

func viewDidLoad() { 
    ... 
    button.addTarget(self, action:#selector(buttonDown), for:.touchDown) 
    button.addTarget(self, action:#selector(buttonUp), for:.touchUpInside) 
    button.addTarget(self, action:#selector(buttonUp), for:.touchUpOutside) 
    ... 
} 

func buttonDown() { 
    startReadBarcode() 
} 

func buttonUp() { 
    stopReadBarcode() 
} 
+0

よく見えます。しかし、なぜジェスチャー認識機能を使用しないのですか? –

+0

私は、ボタンの下にフラグを設定し、ボタンの上にそれを設定解除すると思います。デリゲートメソッドにはほとんど影響しません。 –

+0

ジェスチャー認識機能を使用する理由はこれがはるかに簡単な場合です。 – Spads

関連する問題