根据Apple规范,IB对象将使用Storyboard / Xib定义。 对于某些项目,这可能会导致定义UILabels,UIButtons等的长列表。 必须使用IBOutlet的代码连接到代码。
示例:
@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等),并使用它来更改Object的内容/属性?
伪代码示例:
for (i=0;i<100;i++) {
<label i>.text = @"...";
}
在上面的代码中,我想为所有标签分配一个字符串值。如何做到这一点,而不是 一种识别标签的方法。
答案 0 :(得分: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,您可以在功能或循环中使用这些标签。