Как случайная позиция из UIButtons была создана раскадровкой? [Swift Xcode] - PullRequest
0 голосов
/ 24 июня 2018

Я создал 12 UIB-кнопок по раскадровке, в моей программе эти кнопки представляют карты, я хочу случайным образом расположить кнопки для перетасовки карт. Пожалуйста, сделайте мне одолжение, дайте способ или идею для достижения этого.

проблема с моими кнопками

import UIKit

class ViewController: UIViewController {

lazy var game = Concentration(numberOfPairsOfCards: numberOfPairOfCards) //引入model Concentration
var numberOfPairOfCards : Int {
    return (cardButtons.count + 1) / 2  //read only computed properties可以省略get{}
}
var flipCount = 0 {
    didSet {
        flipsCountLabel.text = "Flips: \(flipCount)"
    }

}
@IBOutlet var cardButtons: [UIButton]!



@IBOutlet weak var flipsCountLabel: UILabel!

@IBAction func touchCard(_ sender: UIButton) {
    flipCount += 1

    if let cardNumber = cardButtons.index(of: sender) {
         game.chooseCard(at: cardNumber)
        updateViewFromModel()

    } else {
        print("somthing wrong")
    }


}

Я выполнил работу.

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    var buttons = [UIButton]()
    for index in cardButtons.indices {
        buttons.append(cardButtons[index])
    }

    for index in cardButtons.indices {
        cardButtons[index] = buttons.remove(at: buttons.count.arc4random)
    }

}

1 Ответ

0 голосов
/ 24 июня 2018

Вы можете добавить кнопки в массив, перетасовать массив, а затем перебрать его и разместить кнопки.Лучшим решением было бы создать вместо этого UICollectionView.

...