从NSMutableArray动态显示UILabel

时间:2015-07-27 14:30:39

标签: ios objective-c ios8

我有一个可变数组,如下所示

 labelArrays = [NSMutableArray arrayWithObjects:@"One”, @“Two”, @“Three", nil];

我想将所有列表数组值显示为单个标签。这就像使用数组值动态显示UILabel一样。我的所作所为如下,

 int count=20;
 for(int i = 0; i < [labelArrays count]; i++){
 label1 = [[UILabel alloc]init];
 label1.text = [labelArrays componentsJoinedByString:@" "];
 label1.textColor = [UIColor colorWithRed:0.643 green:0.643 blue:0.639 alpha:1];
 label1.layer.borderWidth = 1.0;
 label1.layer.cornerRadius = 8;
 count+=20;
 [self addSubview:label1];
}

这里我只能显示单个标签内的所有数组值。如何动态显示多个标签中的数组值。

//viewcontroller

myView.label1.frame =CGRectMake(588,200,200,28);

3 个答案:

答案 0 :(得分:2)

你的编码很好,但你没有添加框架,试试这个

label1 =  [[UILabel alloc] initWithFrame: CGRectMake(0,count,aslikeyourwidth,aslikeyourheight)];

答案 1 :(得分:1)

只是一个想法 - 使用tableview显示数组会不会更好?

看起来您可能只需要处理它们在视图上的位置,因为代码看起来像是在添加标签,但是它们将它们放在彼此之上。

答案 2 :(得分:1)

function isEmpty( el ){ return !el.has('*').length; } 定义一个公共方法,您愿意在其中添加view,将UILabel传递给该方法,然后根据您的设计,每次迭代更新x坐标或y坐标。请按照以下步骤操作:

CGRect

现在在您的视图类中添加多个// code in your viewcontroller [myView designYourMultipleLabelsWithStartingFrame:CGRectMake(588,200,200,28)]; // pass the frame of the first label. ,假设您已设置UILabel

labelArrays

希望这会有所帮助。