【问题标题】:How can I get the next IBAction to affect the next empty IBOutet UILabel?如何让下一个 IBAction 影响下一个空的 IBOutet UILabel?
【发布时间】:2011-07-29 20:04:40
【问题描述】:

我有 12 个带有 0-11 标记的按钮。当用户单击按钮时,标签将插入 12 个标签出口中的第一个。我希望下一个单击按钮自动将其标签插入下一个可用插座。截至目前,标签只是将自身添加到第一个出口。我尝试了各种修复方法,但都无济于事。

这是我目前的实现:

-(IBAction)enterNumber:(id)sender {
cell1 = cell1+(int)[sender tag];
label1.text = [NSString stringWithFormat:@"%i",cell1];
}

我的问题是让下一个 IBAction 仅显示在 cell2 中(我认为这个帮助将引导我使用 cell3-cell12 的修复程序。我的书的建议都没有提供适合我有限知识的过程。

在丹尼洛之后编辑

我没有考虑过 IBOutletCollection,我没听说过!我一定会尝试使用它。对于其他想要对我的问题提出更清晰问题的人,我将尝试代表用户将与之交互的屏幕的一部分。顶部的数字是固定按钮。底部方块是单击的顶部按钮的标签按顺序记录到系列的位置。我刚刚点击了(4)。我希望下次单击任何顶部按钮时都可以登录到第二个底部方块,但正在发生的事情是整数被添加到第一个框中的整数中。

(1) - (2) - (3) - (4) - (5) - (6)

[4][_][_][_][_][_][_][_][_][_][_]

【问题讨论】:

  • 不确定您要做什么?当用户点击按钮时更改按钮的标签?
  • 请解释的更准确一些,因为我不明白你想做什么......

标签: iphone objective-c xcode uilabel ibaction


【解决方案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;
    }
}

【讨论】:

    【解决方案2】:

    从你所说的“但正在发生的事情是整数被添加到第一个框中的整数中。”我相信您的问题是您只能在第一个标签中显示数字。这是因为在您的方法中,您使用cell1 将标签的文本设置为label1.text = someValue;,所以它是始终更新的label1。您应该获得按钮相应标签的标签。例如,如果您的标签是 3,那么您应该更改 label3 的文本,如果它是 7,则更改 label7 的文本。还要确保您的单元格是否需要相应更改。这是我从你提到的情况中理解的。如果我错了,请纠正我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-24
      • 2017-01-06
      • 2020-11-13
      • 2020-04-30
      • 2012-06-07
      • 2022-12-06
      • 2016-12-21
      • 1970-01-01
      相关资源
      最近更新 更多