ios – 在目标c中动态命名标签

前端之家收集整理的这篇文章主要介绍了ios – 在目标c中动态命名标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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"];
}

这应该工作得很好..问题是什么.?

猜你在找的Xcode相关文章