定义非常多的Lable的时候解决方案

定义非常多的Lable的时候
我在做一个页面,需要很多图片和文字
比如下面:
C# code
    UIImageView *imageView6 = [[[UIImageView alloc] initWithFrame:CGRectMake(217, 132, 98, 98)] autorelease];
    imageView6.image = [UIImage imageNamed:[mImage objectAtIndex:5]];
    imageView6.userInteractionEnabled = YES;
    UITapGestureRecognizer *test6 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(touch6)];
    [imageView6 addGestureRecognizer:test6];
    [environmentView addSubview:imageView6];
    //文字描述
    UILabel* descriptionLable6=[[[UILabel alloc] initWithFrame:CGRectMake((imageView6.frame.origin.x), (imageView6.frame.origin.y)+82, 98, 16)]autorelease];
    descriptionLable6.text=[mDescriptionl objectAtIndex:5];
    descriptionLable6.textColor=[UIColor whiteColor];
    descriptionLable6.font=[UIFont fontWithName:@"Arial" size:12];
    descriptionLable6.backgroundColor=[UIColor blackColor];
    descriptionLable6.alpha=0.7;
    descriptionLable6.textAlignment=UITextAlignmentCenter;
    [environmentView addSubview:descriptionLable6];


就是一个图片,下面加一个文字。一个页面至少有10~20对这种东西,就是坐标不一样,图片文字都是从数组里获取的。其他完全一样。
请问在以后维护角度来看,我是把上面代码复制粘贴,在微调比较好,还是采用其他什么办法呢?
我是刚开始做这个。如果有其他好的方法请简单写一下吧,先感谢一下。

------解决方案--------------------
如果样式一样,你可以写成一个UILable的扩展类,或者就直接写成MYLable类,每次要使用就create一个label,修改label的属性即可。

------解决方案--------------------
考虑循环 动态加载
那,如果界面是上百个UILable,你还有重复写100次?几行代码不就搞定了嘛
------解决方案--------------------
东西都在一个数组里面,使用循环加载即可

对坐标进行控制就好啦

里面的内容 也取对应的数组即可。


------解决方案--------------------
楼主,在代码解决了问题之后,要精简代码,解决代码冗余,提炼公共类等,使方便扩展。
------解决方案--------------------
循环啊,用tag什么的
------解决方案--------------------
ARC 了还autorelease什么
------解决方案--------------------
在不同的场合里,封装不一定是十全十美的解决方案。

LZ开发的是一个具体的项目,在项目通常会因为业务的需要制作很多界面和界面上的子元素。而项目最大的一个特点就是易变性,而这种变化也是很难预料和控制的。

在遇到这样的问题时,第一个思路就是对变化进行封装,用OOP的思想应对重复的工作。但是还有下面几点问题需要考虑:
1:程序里像这样的窗口多吗,如果不多的花,窗口里包含的10多个组件以手动的方式也是很快就能建好的。
2:创建一个自定义的组件的功能一定要是完善的,否则所以依赖它的组件都会不能使用
3:创建一个自定义组件的时间和难度会比手动创建10多个组件要更长的时间,和维护时间
4:手动建立10个组件能更方便独立扩展,一旦其中某个组件需要特别的功能时,已建立好的自定义组件就需要扩展,而这种扩展就会带来BUG。

上面的第4条是手动放置组件的有点。
不同的环境里可以综合考虑周围的环境和条件,以次作为选择解决方案的依据,不能一味的最求某种技术的滥用。在实际的开发项目里也是存在因组件封装不完善而照成项目开发难度的情况。
Object-C使用委托来替代继承,本人觉得是否就是一种因继承滥用而出现的解决方案呢?(个人愚见)