这是一个逻辑问题。例如,想象我有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
它继续。
我怎么能以编程方式执行此操作,而且我没有编写任何代码来显示您的代码。我坚持这个。
答案 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));
}
}