de ZBarReaderView Class documentation la Zbar:
CGRect scanCrop
La región de la imagen de vídeo que se digitalizará de, en imagen normalizada coordenadas. Tenga en cuenta que la imagen de vídeo es en modo horizontal (por defecto {{0, 0}, {1, 1}})
Las coordenadas de todos los argumentos se encuentra en un flotador normalizado, que es de 0 - 1 Entonces, en valor normalizado, theView.width
es 1.0, y theView.height
es 1.0. Por lo tanto, el rect predeterminado es {{0,0}, {1,1}}.
Así, por ejemplo, si tengo un UIView
transparente llamado scanView
como región de escaneo para mi readerView
. En lugar de hacer:
readerView.scanCrop = scanView.frame;
que deberíamos hacer esto, normalizando cada argumentos primera:
CGFloat x,y,width,height;
x = scanView.frame.origin.x/readerView.bounds.size.width;
y = scanView.frame.origin.y/readerView.bounds.size.height;
width = scanView.frame.size.width/readerView.bounds.size.width;
height = scanView.frame.size.height/readerView.bounds.size.height;
readerView.scanCrop = CGRectMake(x, y, width, height);
Funciona para mí. Espero que ayude.
Me gustaría poder upvote que dos veces, gracias! – chourobin
Si su lector va a estar en vertical en lugar de horizontal, consulte [esta publicación] (http://stackoverflow.com/a/11732752/542400) – AMayes