每一个NSThread对象。包含应用程序的主线程。具有依据须要自己主动创建一个NSRunLoop对象。假设你须要訪问当前线程的执行循环,能够使用类方法currentRunLoop。
{
[super viewDidLoad];
//设置代理
self.readerDelegate = self;
//扫瞄图像
ZBarImageScanner *mScanner = self.scanner;
//是否显示绿色的追踪框。注意。即当选择yes的时候。这个框只当扫瞄EAN和I2/5的时候才可见。
self . tracksSymbols = YES ;
// 是否使用备用控制组
self . showsZBarControls = YES ;
// 支持的方向。用 ZBarOrientationMask() 和 ZBarOrientationMaskAll
self . supportedOrientationsMask = ZBarOrientationMask ( UIInterfaceOrientationMaskPortrait );
// 提供自己定义覆盖层。注意,在 showsZBarControls 启用的情况下才干够用
UIView *view = [[ UIView alloc ] initWithFrame : self . view . bounds ];
view. backgroundColor = [ UIColor grayColor ];
self . cameraOverlayView = view;
// 裁剪扫描的图像,在扫描前图像将被裁剪到这个矩形内。这个矩形框是将图像的尺寸和宽高比标准化,
// 有效值将放置矩形内介于 0 和 1 的每一个轴。当中 x 轴相应于图像的长轴。默觉得完整的图像( 0 。 0 , 1 , 1 )。
// self.scanCrop
// 调节以适应预览图片
// self.cameraViewTransform
[mScanner setSymbology : ZBAR_I25
config : ZBAR_CFG_ENABLE
to : 0 ];
// Do any additional setup after loading the view.
}
- ( void )viewDidAppear:( BOOL )animated
{
[ super viewDidAppear :animated];
[ self . readerView start ];
}
- ( void )viewWillDisappear:( BOOL )animated
{
[ super viewWillDisappear :animated];
[ self . readerView stop ];
}
- ( void )imagePickerController:( UIImagePickerController *)picker didFinishPickingMediaWithInfo:( NSDictionary *)info
{
// 获取扫瞄结果
id < NSFastEnumeration > results = [info objectForKey : ZBarReaderControllerResults ];
ZBarSymbol *symbol = nil ;
for (symbol in results)
break ;
NSString *text = symbol. data ;
// 解决中文乱码问题
if ([text canBeConvertedToEncoding : NSShiftJISStringEncoding ]) {
text = [ NSString stringWithCString :[text cStringUsingEncoding : NSShiftJISStringEncoding ] encoding : NSUTF8StringEncoding ];
}
NSDictionary *dic = [[ NSDictionary alloc ] initWithObjectsAndKeys :[ NSString stringWithFormat : @"%@" ,text], @"resultLabel" ,[info objectForKey : UIImagePickerControllerOriginalImage ], @"resultImgView" , nil ];
[ self performSelectorOnMainThread : @selector (mainAction:) withObject :dic waitUntilDone : NO ];
}
{
OtherViewController *other = [[OtherViewController alloc] init];
other.resultString = [dic objectForKey:@"resultLabel"];
other.image = [dic objectForKey:@"resultImgView"];
[self.navigationController pushViewController:other animated:YES];
- (id) initWithImageScanner: (ZBarImageScanner*) imageScanner;
// start the video stream and barcode reader.
- (void) start;
// stop the video stream and barcode reader.
- (void) stop;
// clear the internal result cache
- (void) flushCache;
// compensate for device/camera/interface orientation
- (void) willRotateToInterfaceOrientation: (UIInterfaceOrientation) orient
@property (nonatomic, assign) id<ZBarReaderViewDelegate> readerDelegate;
// access to image scanner for configuration.
@property (nonatomic, readonly) ZBarImageScanner *scanner;
// whether to display the tracking annotation for uncertain barcodes
// (default YES).
@property (nonatomic) BOOL tracksSymbols;
// color of the tracking box (default green)
// (default YES).
@property (nonatomic) BOOL allowsPinchZoom;
// torch mode to set automatically (default Auto).
// also updated by pinch-zoom gesture. clipped to range [1,maxZoom],
// defaults to 1.25
@property (nonatomic) CGFloat zoom;
- (void) setZoom: (CGFloat) zoom
{
ZBarSymbol *symbol = nil;
for (symbol in symbols)
break;
NSString *text = symbol.data;
NSLog(@"%@",text);