Как я могу отложить изменение пользовательского интерфейса по умолчанию, за исключением случаев, когда иначе (в Swift)?IOS

Программируем под IOS
Ответить
Anonymous
 Как я могу отложить изменение пользовательского интерфейса по умолчанию, за исключением случаев, когда иначе (в Swift)?

Сообщение Anonymous »

Я строю простую карточную игру памяти. Если пользователи выбрали Carda, а CardB не совпадает, я хочу ввести задержку, прежде чем перевернуть их обратно, чтобы у пользователя было время обработать то, что находится на CardB. То, как я сейчас работает, за исключением краевого случая, когда пользователь выбирает третью карту, прежде чем первые 2 перевернутся назад. Как я могу изменить это, чтобы вторая 3 -я карта перевернута, первые 2 немедленно перевернулись назад, но если 3 -я карта не перевернута, задержка идет так, как планировалось? Я знаю, что ответ, вероятно, связан с потоком, но это все, что я рассуждал до сих пор. Спасибо! < /P>
\* vars defined earlier
var cardListData: [ShellCard] =
var gameMode = ""
var selectedCount = 0
var priorCardCellData: (ShellUICollectionViewCell, ShellCard)? = nil
var flippedCells:[ShellUICollectionViewCell] = []
var cardTuple:(ShellCard?, ShellCard?) = (nil,nil)
var gameScore = 0
*/
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) as? ShellUICollectionViewCell {
cell.click()
if !flippedCells.contains(cell)
{
let card = cardListData[indexPath.item]
if selectedCount == 0 {
cardTuple.0 = card
priorCardCellData = (cell,card)
flippedCells.append(cell)
selectedCount+=1
} else
{
cardTuple.1 = card
if (cardsMatch(card1: cardTuple.0!, card2: cardTuple.1!)){
gameScore += 20
} else {
let delayInSeconds = 1.5
DispatchQueue.main.asyncAfter(deadline: .now() + delayInSeconds){
cell.unclick()
self.priorCardCellData!.0.unclick()
self.priorCardCellData = nil
self.flippedCells.removeLast()
}
}
selectedCount = 0
}
}
gameScoreLabel.text = "Your Score:" + "\n" + " " + String(gameScore)
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... e-in-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»