逻辑问题 - 在标签上显示标题为标题

时间:2012-04-06 15:59:50

标签: iphone objective-c

这是一个逻辑问题。例如,想象我有4个标签。我需要为这些标题设置一个数字。

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

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

注意:实例中只允许使用4个数字。

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

它继续。

我怎么能以编程方式执行此操作,而且我没有编写任何代码来显示您的代码。我坚持这个。

3 个答案:

答案 0 :(得分:1)

您的描述不是特别清楚。但这听起来像是在尝试描述一个标签可以一次“活动”的情况,按下按钮会以某种方式循环显示状态。如果是这样,您的代码应随时跟踪哪些标签处于活动状态。要处理按键,请检查当前状态并执行正确操作。

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

现在去写一些代码。

答案 1 :(得分: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并在更改时更新所有标签。

答案 2 :(得分: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));
  }
}