Swift - 如何按顺序显示不同的文本

时间:2016-09-22 19:35:17

标签: ios swift tap

所以我有一个倒计时应用程序,并具有不同的倒计时格式。这包括直到特定日期的几分钟小时。我想一次只显示一个变量。

所以它会:天TAP分钟TAP小时TAP秒

然后,一旦录制一秒钟,它就会回到起点。所以它会持续几天TAP并继续重复。

我尝试过使用手势识别器,但我遇到了灾难性的困扰,请帮助你。

3 个答案:

答案 0 :(得分:1)

我会尽可能地简化这个解决方案。

你可以放一个按钮,然后在代码中处理它(显然你不需要手势识别器)并根据状态更改文本。就像默认情况下你有分钟,你只需要将状态改为小时等等。

如何改变状态?我会使用枚举,就像state += 1

一样

答案 1 :(得分:1)

我会给你一个简单的解决方案。

首先,创建一个代表您当前正在展示的内容的枚举:

enum CountDownMode {
    case Days, Minutes, Hours, Seconds
}

然后,在控制器中声明一个这样的变量:

var currentMode = CountDownMode.Days

实际上,您不需要使用手势识别器来识别这种简单的触摸。只需覆盖touchesBegan

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

}

touchesBegan中,使用currentMode的值,您可以轻松找出接下来的模式并相应地更改文字:

switch currentMode {
case .Days:
    // change text here
    currentMode = .Minutes
case .Minutes:
    // change text here
    currentMode = .Hours
case .Hours:
    // change text here
    currentMode = .Seconds
case .Seconds:
    // change text here
    currentMode = .Days
}

答案 2 :(得分:0)

如果你想保留你的手势识别器,那么你可以拥有一个格式数组和一个由视图控制器保存的索引,它在init上从0开始。在每次点击时,递增索引(使用模数使其返回0),然后将倒计时的格式设置为当前索引处数组中的倒计时格式。