ios - 跟踪随机数

标签 ios xcode swift if-statement random

我想将图像应用到总共 12 个 UIButton 中的 3 个随机 UIButton。

编辑

这是工作代码;

let buttons:NSArray = [button1, button2, button3, button4, button5, button6, button7, button8, button9, button10, button11, button12].shuffle()

buttons[0].setImage(UIImage(named: "code1"), forState: .Normal)
buttons[1].setImage(UIImage(named: "code1"), forState: .Normal)
buttons[2].setImage(UIImage(named: "code1"), forState: .Normal)

和工作洗牌功能;

extension CollectionType {
func shuffle() -> [Generator.Element] {
var list = Array(self)
list.shuffleInPlace()
return list
   }
}

extension MutableCollectionType where Index == Int {
mutating func shuffleInPlace() {

if count < 2 { return }

for i in 0..<count - 1 {
    let j = Int(arc4random_uniform(UInt32(count - i))) + i
    guard i != j else { continue }
    swap(&self[i], &self[j])
     }
   }  
 }

最佳答案

这里有一个不同的想法:将所有 12 个 UIButtons 放入一个数组中,打乱该数组并操作前三个元素:

var buttons = [button1, button2, ..., button12]
buttons.shuffled()

// Do whatever with buttons[0] - button[2]
buttons[0].setImage(UIImage(named: "..."), forState: .Normal)
buttons[1].setImage(UIImage(named: "..."), forState: .Normal)
buttons[2].setImage(UIImage(named: "..."), forState: .Normal)

关于ios - 跟踪随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35526580/

相关文章:

ios - 如何使 Swift Codable 类型更加通用

cocoa-touch - 第一次点击 UITextField 时发生奇怪的崩溃

ios - 如何仅在 Debug模式下启用3D触摸(静态快速操作)?

ios - Xcode/iOS - 尝试通过简单的打印来进行控制台调试,但无法正常工作。不知道如何找到问题

ios - 为 SKSpriteNode 添加发光效果

ios - Swift:滚动时标签和图像的 UICollectionView 单元格重复

iphone - 为什么更改 UITextField 在一种情况下会导致无限循环,而在另一种情况下不会?

ios - UICollectionView 和 UINavigationController 不合作 - 设置提示时导航 Controller 遮挡单元格

ios - 使用有效值设置 SCNNode 的旋转,但它始终为 0,0,0,0

swift - Fuzi XML 解析器不工作。 swift 3