在我的UIViewController
后代中,我有一组四个“块”。每个“块”是一个UIView
四个孩子:两个UILabel
、一个UIImageView
和一个UIView
。所有这些都是在界面生成器中创建的,并使用IBOutlet
's 连接到类。
在我的班上,我有相应的成员:
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 行代码 - 但逻辑完全相同。)现在,如果我只能以某种方式引用一个视图在字符串变量中具有名称!..
有什么办法可以做到这一点?
PS 我知道我可以在代码中将所有这些视图创建为相应视图的数组,但是我也必须在代码中进行布局——我宁愿在 IB 中这样做。或者有什么方法可以将UIViews
's 的数组声明为IBOutlet
并连接 IB 中数组中的每个元素?