Swift - 如何按顺序显示不同的文本
Swift - How to show different text upon taps in sequence
所以我有一个倒计时应用程序并且有不同格式的倒计时。这包括直到某个日期的天分小时秒。我只想让一个变量一次出现。
所以会 go:days TAP 分钟 TAP 小时 TAP 秒
然后,一旦录制秒数,它就会回到开头。所以它会持续几秒钟 TAP 天并继续重复。
我试过使用手势识别器,但我遇到了灾难性的问题,请你帮忙。
我会尽可能简化这个解决方案。
您可以放置一个按钮,点击后只需在代码中处理它(您显然不需要手势识别器)并根据状态更改文本。就像默认情况下你有分钟,点击你只需将状态更改为小时等等。
如何改变状态?我只会使用枚举并喜欢 state += 1
如果你想保留你的手势识别器,那么你可以有一个格式数组和一个由你的视图控制器保存的索引,它在初始化时从 0 开始。在每次点击时,增加索引(使用模数以便它返回到 0),然后将倒计时的格式设置为数组中当前索引处的格式。
我给你一个直接的解决方案。
首先,创建一个枚举来表示您当前显示的内容:
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
}
所以我有一个倒计时应用程序并且有不同格式的倒计时。这包括直到某个日期的天分小时秒。我只想让一个变量一次出现。
所以会 go:days TAP 分钟 TAP 小时 TAP 秒
然后,一旦录制秒数,它就会回到开头。所以它会持续几秒钟 TAP 天并继续重复。
我试过使用手势识别器,但我遇到了灾难性的问题,请你帮忙。
我会尽可能简化这个解决方案。
您可以放置一个按钮,点击后只需在代码中处理它(您显然不需要手势识别器)并根据状态更改文本。就像默认情况下你有分钟,点击你只需将状态更改为小时等等。
如何改变状态?我只会使用枚举并喜欢 state += 1
如果你想保留你的手势识别器,那么你可以有一个格式数组和一个由你的视图控制器保存的索引,它在初始化时从 0 开始。在每次点击时,增加索引(使用模数以便它返回到 0),然后将倒计时的格式设置为数组中当前索引处的格式。
我给你一个直接的解决方案。
首先,创建一个枚举来表示您当前显示的内容:
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
}