2013-06-20 77 views
1

我需要創建cameraoverlay視圖(要添加到ZBar sdk reader),我的問題是如何創建我不需要編程的所有對象。現在我以編程方式創建所有對象,然後將它們添加到myView,並使用myView作爲cameraoverlay視圖。如何使視圖不以編程方式作爲cameraoverlay視圖

[self.myView addSubview: myImage]; 
[self.myView addSubview: self.mylabel]; 
[self.myView addSubview: myButton]; 

reader.cameraOverlayView=self.myView; 

我嘗試添加另一個控制視圖,並添加了以它然後做一個的TabBar並試用了此代碼不起作用:

TestViewController *test=[[TestViewController alloc]init]; 
reader.cameraOverlayView=test.testView; 

使物體編程對我來說很難是這樣的可以找到在xcode中創建的對象的源代碼,例如當我在xcode中創建自定義按鈕時,是否可以找到爲此按鈕生成的源代碼,並將其複製到我的程序中。

回答

1

有將工作

  • 在代碼中創建一個自定義視圖conainer幾種方法。添加zbar視圖以及任何自定義視圖(掃描儀圖形等)。這是我最近做的。

  • 創建一個xib視圖,並在其中包含zbar視圖。查看「對象」組件。

  • 從xibs加載自定義視圖並添加它們。

如果您有時間,我建議您投資學習如何以編程方式創建視圖。

這包括:

  • 在你看來位指示覆蓋的loadView方法。

  • 返回包含子視圖的UIView的自定義子類。這些包括zbar視圖和疊加層。

  • 瞭解如何在UIView上使用layoutSubviews方法。提示設置你的子視圖的框架相對於不同的視圖邊界。

Github上有大量的自定義組件。查看DCSwitch或CMPoptip,或閱讀對ManiacDev的貢獻。

*根據要求 - 成功的掃描後加入子視圖*

- (void)readerView:(ZBarReaderView*)view didReadSymbols:(ZBarSymbolSet*)symbols fromImage:(UIImage*)image 
{ 
    for (ZBarSymbol* symbol in symbols) 
    { 
     [self presentScannedOverlay]; 
     [_scanInProgressOverlay setAnimating:NO]; 
     [_readerView stop]; 
     [_delegate didScanPayload:symbol.data]; 
     break; 
    } 
} 


- (void)presentScannedOverlay 
{ 
    //Be sure to override layoutSubviews, so that you can position the view below, 
    //relative to its parent. . if you already know the size of the parent, just replace 
    //CGRectZero with CGRectMake(some values) 
    _scannedOverlayView = [MyOverlayView alloc] initWithFrame:CGRectZero]; 
    [self addSubView:scannedOverlayView]; 
} 
+0

你告訴我ManiacDev這是優秀的,如果你告訴我更多有用的網站,因爲我初學者我很欣賞。 – user2211254

+0

你知道,我想要做的是在代碼檢測到後,在CAMERA上添加信息層,該圖層包含按鈕,tabbar ... 你建議我如何實現這一點? 可否請你提供我的示例代碼的選項,建議我。 – user2211254

+0

添加了你想要的信息。 –