因此,我有一個倒計時應用程序,並有不同的倒計時格式。這包括幾分鐘幾秒到某個日期。我想一次只顯示一個變量。Swift - 如何在順序點擊時顯示不同的文本
所以它會去:天TAP分鐘TAP小時TAP秒
然後,一旦秒錄音,又回到了起點。所以它會持續幾秒TAP並繼續重複。
我已經嘗試過使用手勢識別器,但我是災難性卡住,請你能幫忙。
因此,我有一個倒計時應用程序,並有不同的倒計時格式。這包括幾分鐘幾秒到某個日期。我想一次只顯示一個變量。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