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

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

Сообщение 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 ... -otherwise
Ответить

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

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

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

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

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