我是iOS开发的新手,只是有一个简单的问题.我正在用100 UILabel创建一个应用程序.每个标签编号为0到99.问题是我不想对所有100个标签执行此操作.
output1.text = [[NSString alloc] initWithFormat:@"1"]; output2.text = [[NSString alloc] initWithFormat:@"2"]; ..... output100.text = [[NSString alloc] initWithFormat:@"100"];
相反,我想更动态地做这件事.下面我试图使用循环动态创建一个字符串.例如,通过将“1.text”附加到“output”的末尾,我得到字符串“output1.text”.
for (int i=0; i< 100; i++) { outputNameString = [NSMutableString stringWithCapacity:0]; [outputNameString setString:@"output"]; [outputNameString appendString:[NSString stringWithFormat:@"%i.text",i + 1]]; outputNameString = [[NSString alloc] initWithFormat:@"%@",i]; }
“output1”到“output100”在接口部分正确声明并正确合成.我在这里缺少什么,或者这根本不可能?任何帮助,将不胜感激.
解决方法
当你创建标签时……设置它们的标签让我们说(100 — 200)
所以.
像这样初始化你的标签..
for (int i=0; i< 100; i++) { UILabel *label = [[UILabel alloc] init] ; // label formatting code here... label.tag = i+100; }
然后像这样获得你的标签..并设置其文本
for (int i=0; i< 100; i++) { UILabel *myLabel = (UILabel *)[self.view viewWithTag:i+100]; // get the label with tag myLabel.text = [NSString stringWithFormat:@" Label %d",i+1"]; }
这应该工作得很好..问题是什么.?