我正在寻找一个函数或循环原型来将 UILabels 添加到 iPhone 上的视图中。这样做的原因是我不会提前知道我需要添加多少标签,因此需要动态添加它们。
我的伪代码如下。这个想法是给每个标签一个字符串,然后放置在下一个屏幕中,因此 +self.view.frame.size.width 语句。分页等工作完美,问题是所有标签似乎都在第二个屏幕上结束,即标签 3 出现在标签 2 的顶部。问题似乎是我总是引用 altLabel,因此一旦我移动到第二个位置,我一直在参考那个位置,并且从不移动一次。
我可以使用 'count' 变量来倍增屏幕宽度,但如果我这样做,每次我更新标签文本时,它都会覆盖以前的。
int count = 0;
int maxNumber = 10;
while(count < maxNumber) {
//Add a label
UILabel *altlabel; //Declare the label
if (count > 0) {
//Move the label
altlabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMinX(altlabel.frame)+self.view.frame.size.width,10,300,25)];
altlabel.text = [NSString stringWithFormat:@"%@ %@ (%d)", _name,_age, class+count];
}
else {
altlabel = [[UILabel alloc] initWithFrame:CGRectMake(10,10,300,25)];
altlabel.text = [NSString stringWithFormat:@"%@ %@ (%d)", _name,_age, class];
}
altlabel.textColor = [UIColor greenColor];
[altlabel sizeToFit];
[_scrollView addSubview:altlabel];
count++;
}