1

这是一个逻辑问题。例如假设我有 4 个标签。我需要为这些标签设置一个数字作为它的标题。

标签如下;会有一个按钮,当我点击它时,标签的标题应该改变(这类似于First in First Out

当我第一次单击该按钮时,它应该只显示 Label1 的 1。然后,当我第二次单击该按钮时,它应该显示 label1 和 label2 的值(值分别为 1 和 2)。问题出现在我们第 5 次尝试单击时。此时 label1 的值(原为 1)将被删除,现在应该取值为 2(每个数字向前推进)。

注意:一个实例只允许有 4 个号码。

L1 --- L2 --- L3 --- L4
01 --- 02 --- 03 --- 04 
02 --- 03 --- 04 --- 05
03 --- 04 --- 05 --- 06 

它还在继续。

我怎么能以编程方式做到这一点,我还没有编写任何代码来显示你的代码。我被这个困住了。

4

3 回答 3

1

你的描述不是特别清楚。但这听起来像是您试图描述一种情况,即一次可以“激活”多个标签,并且按下按钮以某种方式在状态之间循环。如果是这样,您的代码应随时跟踪哪些标签处于活动状态。要处理按键,请检查当前状态并做正确的事。

或者也许你想保存最后四个数字,并继续增加?然后保留您拥有的四个值的列表,并跟踪要插入的下一个数字以及它将进入的位置。要知道它会去哪里,使用模运算很方便:n % 4 会去 3,然后换成 0。

现在去写一些代码。

于 2012-04-06T16:05:15.043 回答
1

我假设您每次点击只想更改一个标签。它并不完全响应点击或设置标签,但这里有一些需要检查的东西应该会给你关于算术的答案:

NSInteger maxLabel = 4;
for (NSInteger clickCount = 0; clickCount < 12; clickCount++) {
    NSInteger baseValue = clickCount / maxLabel;
    NSInteger cycleValue = (clickCount % maxLabel) + 1;
    NSLog(@"Set label %i to %i", cycleValue, baseValue + cycleValue);
}

另一方面,如果您尝试一次全部更改它们,则逻辑类似,除了保存 baseValue 并在更改时更新所有标签。

于 2012-04-06T16:13:08.137 回答
0

我认为您正在尝试完成的一些伪代码(一次填写一个标签,直到全部填满,然后不断更新标签以仅显示最新的一组数字):

int numLabels = 4;
onClick () {
  static int lastDisplayed = 0;
  lastDisplayed++;
  for (i from 1 to min(lastDisplayed, numLabels)) {
    label[i-1] = (i + lastDisplayed - min(lastDisplayed, numLabels));
  }
}
于 2012-04-06T16:15:45.863 回答