Swift - 如何在顺序点击时显示不同的文本
问题描述:
因此,我有一个倒计时应用程序,并有不同的倒计时格式。这包括几分钟几秒到某个日期。我想一次只显示一个变量。Swift - 如何在顺序点击时显示不同的文本
所以它会去:天TAP分钟TAP小时TAP秒
然后,一旦秒录音,又回到了起点。所以它会持续几秒TAP并继续重复。
我已经尝试过使用手势识别器,但我是灾难性卡住,请你能帮忙。
答
我会给你一个简单的解决方案。
首先,创建一个代表的东西枚举你在此刻显示:
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
}
答
我会尽可能简化此解决方案。
你可以放一个按钮,然后在代码中处理它(你根本不需要手势识别器)并根据状态改变文本。就像默认情况下,你有几分钟时间,只需将状态改为几小时等等。
如何改变状态?我只是使用枚举,并像state += 1
答
如果你想保留你的手势识别器,那么你可以有一个格式和索引持有的视图控制器的数组,从init开始0。在每个抽头上,递增索引(使用模数使其回到0),然后将倒数的格式设置为当前索引处数组中的那个格式。
它是一个标签。 – Alex
不是什么大不了的,在标签上放一个按钮,然后用自动布局对齐,比如'label.center = button.center,label.width = button.width,label height = button.height' – Traveler