2012-11-19 103 views
-1

根據Apple規範IB對象將使用Storyboard/Xib定義。 對於某些項目,這可能會導致定義長列表的UILabels,UIButtons等。 必須使用IBOutlet's連接到代碼。處理多個UI對象

實施例:

@property (nonatomic, retain) IBOutlet UILabel *label1; 
@property (nonatomic, retain) IBOutlet UILabel *label2; 
... 
@property (nonatomic, retain) IBOutlet UILabel *label998; 
@property (nonatomic, retain) IBOutlet UILabel *label999; 

有一種方法在源代碼中識別一個UILabel(或UIButton的或UIImage的等),並用它來改變內容對象的/屬性?

實施例的僞代碼:

for (i=0;i<100;i++) { 
     <label i>.text = @"..."; 
} 

在上面的代碼,我想爲一個字符串值分配給所有的標籤。如何做到這一點,而不是使用來識別標籤。

+0

你能解釋一下你想用這些標籤做什麼。無論您是想要在不同的標籤中加載不同的字符串,還是隻想訪問標籤而無需記住所有標籤的名稱。 –

+0

我想要靈活地訪問.m文件中的IBOutlet對象(在.h文件中定義)。所以要在函數或循環中使用它。 – Vincent

回答

2

您可以在Interface Builder中爲UILabels設置標籤,稍後使用標籤標識它們。 例如,你可以爲你的1000組的標籤設置標籤1001年至2000年及以後你可以使用此代碼在運行時獲得標籤: -

for (NSInteger iTag= 1001; iTag<2001; iTag++) 
{ 
    UILabel *lblTest = (UILabel *)[self.view viewWithTag:iTag]; 
    lblTest.text = @"...."; 
} 

這樣,您的第一個標籤將有一個標籤1001最後的標籤將有一個標籤2000,你可以在函數或循環中使用這些標籤。

+0

正是我在找的,謝謝 – Vincent