Ios 在for循环中添加UILabel

Ios 在for循环中添加UILabel,ios,objective-c,for-loop,uilabel,Ios,Objective C,For Loop,Uilabel,所以我尝试在for循环中添加UILabel,但没有显示任何标签。这是我的密码: for (int i = 0; i < [currentList count]; i++) { label = [[UILabel alloc] initWithFrame:CGRectMake(i * 3, 5.0, 50.0, 50.0)]; [label setText:[currentList objectAtIndex:i]]; [label setBackgroundColo

所以我尝试在for循环中添加UILabel,但没有显示任何标签。这是我的密码:

for (int i = 0; i < [currentList count]; i++) {
    label = [[UILabel alloc] initWithFrame:CGRectMake(i * 3, 5.0, 50.0, 50.0)];
    [label setText:[currentList objectAtIndex:i]];
    [label setBackgroundColor:[UIColor lightGrayColor]];
    [label setTextColor:[UIColor blackColor]];
    [self.view addSubview:label];
}
这没有起到任何作用,所以我尝试在for循环中添加一个NSLog,这是有效的,尽管这只是一个测试,看看for循环是否出错

更新


另外,如何将每个标签彼此分开添加?当我运行这个应用程序时,它们彼此堆积在一起

我建议你读一读,我不知道你到底想实现什么

假设您希望它们居中并看起来像一个列表,您可以尝试:

label = [[UILabel alloc] initWithFrame:CGRectMake((self.view.frame.size.width - labelWidth)/2, 64 + heightBetweenLabels*i, labelWidth, labelHeight)];
然后将heightBetweenLabels设置为该值+64,更精确地说,它是每个标签的y坐标、labelWidth和labelHeight与所需值之间的差值

编辑:

让我进一步解释一下,请看:

左上角是原点x=0,y=0。x的正值正好穿过屏幕,y的正值沿着屏幕向下。同样,您可以为标签设置x和y。这有助于确定标签相对于其superview的位置


如果希望垂直距离更大,或者第一个标签从更远的地方开始,请用更高的值替换64,因为它不受乘法的影响。

我在.m界面中添加了它:-@property strong,nonatomic UILabel*label;不,我没有复制和粘贴。这是我所有的编码。这是哪种方法?它们将被添加到像素位置x=0,x=3,6,9。。。可能不是你想要的。此外,看不到标签的可能原因是y=5可能位于标题栏或状态栏下。试试y>64耶,你说得对。另外,如何将每个标签彼此分开添加?当我运行此应用程序时,它们都互相堆积这是一个好答案,但唯一的问题是第一个UILabel的y值为0,因为当I=0时,这将是第一个循环,然后我们将一个数字乘以0,这将使其值为0。请参阅我编辑的答案。任何乘以0的值都将为0。例64 x 0=0无论我做什么,第一个uilabel都不会显示64+somevalue*对于I=0,我不会是0。