Я просто дать вам представление о том, как это может быть сделано очень просто.
Если у вас есть приложение с одним видом с видом, который был покрывающей весь экран (который должен быть включен в раскадровке, когда он был создан), который связан с IBOutlet так:
IBOutlet weak var view: UIView!
Тогда вы могли бы сделать что-то вроде этого:
var labels: [UILabel]
var characters = ["2", "k", ...] //fill in as required
for character in characters {
let labelWidth: Int = 20 //the width and height can be whatever you want
let labelHeight: Int = 20
let x = arc4random_uniform(UInt32(view.frame.width - CGFloat(labelWidth))) //must compensate for the height of the label so that it doesn't go off screen
let y = arc4random_uniform(UInt32(view.frame.height - CGFloat(labelHeight)))
let label = UILabel(frame: CGRect(x: Int(x), y: Int(y), width: labelWidth, height: labelHeight))
label.text = character
labels.append(label)
view.addSubview(label)
}
Что это делает устанавливает случайное число к вашему х и у значений (что меньше, чем размер точки зрения). Эти значения затем используются при инициализации кадра меток, предоставляя ему случайное местоположение на экране. Это делается 12 раз, исходя из размера вашего массива символов.
Опять же, это просто голые кости для такого типа идей, но я надеюсь, что это поможет.