在我的UIViewController
後代中,我有一組四個「塊」。每個「塊」是一個UIView
四個孩子:兩個UILabel
's,一個UIImageView
和一個UIView
。所有這些都是在界面構建器中創建的,並使用IBOutlet
的類連接到類。參考UIView的變量名稱
在我的課,我有相應的成員:
IBOutlet UIView *block1;
IBOutlet UILabel *title1;
IBOutlet UILabel *text1;
IBOutlet UIImageView *image1;
IBOutlet UIView *separator1;
IBOutlet UIView *block2;
IBOutlet UILabel *title2;
IBOutlet UILabel *text2;
IBOutlet UIImageView *image2;
IBOutlet UIView *separator2;
IBOutlet UIView *block3;
IBOutlet UILabel *title3;
IBOutlet UILabel *text3;
IBOutlet UIImageView *image3;
IBOutlet UIView *separator3;
IBOutlet UIView *block4;
IBOutlet UILabel *title4;
IBOutlet UILabel *text4;
IBOutlet UIImageView *image4;
IBOutlet UIView *separator4;
我得到的數據進行動態設置到這些UIViews - 它總是在一組四個人,因此每個塊的初始化是一樣。理想情況下,我想這樣做:
Block *block;
UIImage *img;
for(int i=1; i<=4; i++)
{
block = [response blockNumbered:i];
[<"title"+i> setText:[block getTitle]];
[<"text"+i> setText:[block getText]];
img = [block getImage];
if(img)
{
[<"image"+i> setImage:img];
}
[<"separator"+i> setHidden:![block needSeparator]];
}
(請注意,這是簡化代碼,在現實生活中,還有很多事情需要這個初始化,對於四個塊的接近200行代碼 - 但是完全一樣的邏輯)現在,如果我只能以某種方式引用具有字符串變量名稱的視圖!
有沒有什麼辦法可以實現這一點?
P.S.我知道我可以在代碼中創建所有這些視圖作爲相應視圖的數組,但是我必須在代碼中進行佈局 - 我寧願在IB中執行此操作。或者是否有任何方法可以將UIViews
的數組聲明爲IBOutlet
並將數組中的每個元素連接到IB?
A-HA!看起來正是我所追求的。讓我試試看,回到你身邊。 –