我有12个按钮,标有0-11。当用户单击按钮时,标签将插入12个标签出口中的第一个。我希望下一个单击按钮自动将其标签插入下一个可用插座。截至目前,标签只是将自己添加到第一个插座。我尝试了各种修复,但无济于事。
这是我迄今为止的实施:
-(IBAction)enterNumber:(id)sender {
cell1 = cell1+(int)[sender tag];
label1.text = [NSString stringWithFormat:@"%i",cell1];
}
我的问题是让下一个IBAction只显示在cell2中(我假设这个帮助会让我使用cell3-cell12的修复程序。我的书中没有一个建议为我有限的知识提供合适的流程。
在Danillo之后编辑
我没有考虑过IBOutletCollection,我没有听说过它!我一定会尝试使用它。对于想要对我的问题提出更清晰问题的其他人,我将尝试代表用户将与之交互的屏幕的一部分。顶部的数字是固定按钮。底部正方形是单击的顶部按钮标签按顺序记录到系列的位置。我点击了(4)。我希望下一次点击任何顶部按钮登录到第二个底部正方形,但发生的是整数被添加到第一个框中的整数。
(1) - (2) - (3) - (4) - (5) - (6)
[4] [_] [_] [_] [_] [_] [_] [_] [_] [_] [_]
答案 0 :(得分:1)
听起来好像您要做的是按顺序向一系列标签提供内容。如果这是正确的,这就是我要采取的方法:
iOS 4及更高版本支持插座集合,这些集合可以作为填充了您指定的任何对象的数组使用。
因此,正如您已标记按钮一样,标记您的标签。然后,在.h文件中,声明一个Outlet Collection,如下所示:
@property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labels;
控制拖动每个标签以将其连接到该出口集合。
然后,当需要将内容分配给标签时,请遍历集合:
for (UILabel *label in self.labels)
{
if (label.tag == whateverIntYouCareAbout)
{
//Do stuff
break;
}
}
答案 1 :(得分:0)
从你所说的“但正在发生的事情是整数被添加到第一个框中的整数。”我相信您的问题,您只能在第一个标签中显示数字。这是因为在您的方法中,您使用label1.text = someValue;
将标签的文本设置为cell1
因此始终更新label1
。您应该获得按钮的相应标签的标签。例如,如果您的代码为3,则应更改label3
的文本,如果其为7,则更改label7
的文本。还要确保您的单元格是否需要相应更改。这就是我从你提到的内容中理解的。如果我错了,请纠正我。