2011-07-06 6 views
6

ठीक है, इसलिए मैं अपने आईफोन ऐप में बारकोड स्कैन करने के लिए जेडबार एसडीके का उपयोग कर रहा हूं। मैंने नमूना कोड सफलतापूर्वक कार्यान्वित किया है, लेकिन अब मैं स्कैनर दृश्य के फ्रेम को बदलना चाहता हूं (यानी: स्क्रीन आकार का आधा)। मैंने डीडलोड को देखने में पाठक के दृश्य के फ्रेम को सेट करने का प्रयास किया है, लेकिन यह स्वयं का आकार बदलता है। मुझे पता है कि यह उन वास्तव में सरल चीजों में से एक होने जा रहा है जिन्हें मैंने अभी याद किया था, लेकिन किसी भी मदद की बहुत सराहना की जाएगी। चीयर्स।मैं एक ज़ेडबार रीडर के फ्रेम को कैसे बदलूं?

संपादित करें: मुझे यह काम करने के लिए मिला है। यहाँ मेरी कोड है:

ZBarReaderViewController *reader = [ZBarReaderViewController new]; 
reader.readerDelegate = self; 
ZBarImageScanner *scanner = reader.scanner; 
[reader setShowsZBarControls:NO]; 
[reader.readerView setScanCrop:(CGRect){ { 0, 0 }, { 0.43, 1 } }]; 
[reader.readerView start]; 
[self.view addSubview:reader.view]; 

overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
[listTableView setFrame:CGRectMake(0, 208, 320, 208)]; 
[overlayView addSubview:listTableView]; 
[self.view addSubview:overlayView]; 
+0

मैं बारकोड रीडर ऐप पर काम कर रहा हूं जो बारकोड पढ़ता है और ज़बर एसडीके का उपयोग करके अपना डेटा प्रदर्शित करता है। अब क्लाइंट स्क्वायर ब्रैकेट को कस्टमाइज़ करना चाहता है जो तब दिखाई देता है जब कैमरा ऑटो बारकोड पर ध्यान केंद्रित करता है। इसे इस तरह कैसे अनुकूलित करें ??? http://i.stack.imgur.com/NkKQr.png धन्यवाद – Furqi

+1

listTableView क्या हल करता है? क्या यह एक कस्टम दृश्य है जिसे आपने कहीं और तुरंत चालू किया है? ओवरव्यू भी एक iVar देखें? –

+0

आप कोड पोस्ट कर रहे हैं जो काम नहीं करता है। क्या आप उपर्युक्त टिप्पणी का उत्तर दे सकते हैं? – Dejell

उत्तर

2

मैंने इसे काम किया।

  1. अपने ही देखने के subview के रूप ZBarReaderViewController की दृष्टि जोड़े (जो annoyingly पूरे दृश्य कोई बात नहीं क्या इसके फ्रेम है भरता है): यह मैं नहीं था क्या है।
  2. ZBarReaderViewController का स्कैन आकार बदलें जो भी आकार मैं चाहता हूं (सावधान: इस फ्रेम को सेट करना सामान्य रूप से सेट करने जैसा नहीं है, बस पूछें कि आपको सहायता चाहिए या नहीं)।
  3. कोई भी विचार जोड़ें जिसे आप ZBarReaderViewController के ओवरले व्यू में दिखाना चाहते हैं।

यह बहुत मुश्किल और अनजान था और ऐप्पल के कोड डिज़ाइन दिशानिर्देशों में से कई तोड़ दिया लेकिन अंत में, अभी भी करने योग्य है।

+0

आपने फ्रेम को रीसेट कैसे किया? एक सबव्यूव के रूप में जोड़ना एक खाली ब्लैक स्क्रीन प्रदान करना प्रतीत होता है। –

+0

क्या आपका कोड उपरोक्त मेरे जैसा है?यदि नहीं, तो कोशिश करें और मुझे बताएं कि आप कैसे जाते हैं। – Dyldo42

+0

@ Dyldo42 आपके कोड में आप क्या बदलते हैं? बेक्यू यह मेरे लिए काम नहीं कर रहा है .... – Furqi

0

आप अपनी खुद की दृश्य और दृश्य नियंत्रक बना सकते हैं, और अपने खुद के देखने के एक subview के रूप ZBarReaderViewController के दृश्य जोड़ने;

+1

यह उतना आसान नहीं है जितना। ऊपर मेरा जवाब देखें। – Dyldo42

+0

ZBarReaderViewController एक व्यू कंट्रोलर है, UIView नहीं। तो, आप बस एक सबव्यू के रूप में नहीं जोड़ सकते हैं! – jcdmb

0

स्कैनिंग व्यू कंट्रोलर के गुणों को संशोधित करने का एक और तरीका है ZBarSDK प्रोजेक्ट आयात करना और एसडीके के बाइनरी संस्करण का उपयोग करने के बजाय इसे संकलित और लिंक करना। उसके बाद, आप है कि आप की जरूरत है दृश्य नियंत्रक के लिए किसी भी परिवर्तन कर सकते हैं (मन उनके लाइसेंस में रखना ... शायद पढ़ना चाहिए कि पहले)

0

इस प्रयास करें यह आपकी मदद कर सकता है:

ZBarReaderViewController *reader= [ZBarReaderViewController new]; 
reader.readerDelegate = self; 
reader.supportedOrientationsMask = ZBarOrientationMaskAll; 

ZBarImageScanner *scanner = reader.scanner; 
// TODO: (optional) additional reader configuration here 

// reader.showsCameraControls = NO; // for UIImagePickerController 
reader.showsZBarControls = NO; 

// EXAMPLE: disable rarely used I2/5 to improve performance 
[scanner setSymbology:ZBAR_I25|ZBAR_QRCODE 
       config: ZBAR_CFG_ENABLE 
        to: 0]; 
[reader viewDidLoad]; 
[reader viewWillAppear:NO]; 
[reader viewDidAppear:NO]; 

[self.viewScan addSubview:reader.view]; 
यहाँ

, self.viewScan आपके वर्तमान नियंत्रक का कोई भी दृश्य है।

तो स्कैनिंग क्षेत्र अब self.viewScan देखें।

+1

मेरे लिए काम के नीचे, आपको बहुत धन्यवाद – milanjansari

+0

लेकिन केवल एक मुद्दा, बारकोड स्कैनर नहीं पता और प्रतिनिधि विधि नहीं कहा जाता है। – milanjansari

0

यह करने के लिए तो यह एक sampleView अंदर हो जाएगा सबसे अच्छा तरीका है:

UIView *view = [self sampleView]; 
CALayer *viewLayer = [view layer]; 
[viewLayer setMasksToBounds:YES]; 
CGRect bounds = [view bounds]; 
[reader.view.layer setFrame:bounds]; 
[viewLayer insertSublayer:reader.view.layer below:[[viewLayer sublayers] objectAtIndex:0]]; 
7
इसके बजाय ZBarReaderViewController का उपयोग करने का

, ZBarReaderView उपयोग करके देखें। यह मेरे लिए काम किया और मेरे बहुत समय बचाया। उम्मीद है कि यह आपकी मदद करता है।

ZBarReaderView*reader = [ZBarReaderView new]; 
ZBarImageScanner * scanner = [ZBarImageScanner new]; 
[scanner setSymbology: ZBAR_I25 
       config: ZBAR_CFG_ENABLE 
        to: 0]; 
reader = [reader initWithImageScanner:scanner]; 
reader.readerDelegate = self; 
reader.tracksSymbols = YES; 
reader.frame = CGRectMake(20, 38, 283, 347); 
reader.torchMode = 0; 
dispatch_async(dispatch_get_main_queue(), ^{[reader start];}); 

[self.view addSubview:reader]; 
संबंधित मुद्दे