2015-05-05 3 views
-2

Я создаю приложение, в котором вы нажимаете кнопку, вызывая появление новой кнопки, и кнопка, которую вы нажали, исчезает. Я хочу, чтобы кнопки отображались случайным образом, и я также хочу, чтобы она всегда была видимой на 4 кнопки. Я не могу понять, как это сделать, спасибо!Произвольно создавать кнопки (Swift)

Вот образ того, как стартовый экран выглядит следующим образом:

enter image description here

Я пытался сделать это с помощью UIView «s hidden свойства, но он не работает так хорошо.
Heres мой код до сих пор:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var blankButton1: UIButton! 
    @IBOutlet weak var blankButton2: UIButton! 
    @IBOutlet weak var blankButton3: UIButton! 
    @IBOutlet weak var blankButton4: UIButton! 
    @IBOutlet weak var blankButton5: UIButton! 
    @IBOutlet weak var blankButton6: UIButton! 
    @IBOutlet weak var blankButton7: UIButton! 
    @IBOutlet weak var blankButton8: UIButton! 
    @IBOutlet weak var blankButton9: UIButton! 

    @IBOutlet weak var bluebutton1: UIButton! 
    @IBOutlet weak var bluebutton2: UIButton! 
    @IBOutlet weak var bluebutton3: UIButton! 
    @IBOutlet weak var bluebutton4: UIButton! 
    @IBOutlet weak var bluebutton5: UIButton! 
    @IBOutlet weak var bluebutton6: UIButton! 
    @IBOutlet weak var bluebutton7: UIButton! 
    @IBOutlet weak var bluebutton8: UIButton! 
    @IBOutlet weak var bluebutton9: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     bluebutton1.hidden = true 
     bluebutton2.hidden = true 
     bluebutton3.hidden = true 
     bluebutton4.hidden = true 
     bluebutton6.hidden = true 
    } 

    @IBAction func FirstHidden(sender: AnyObject) { 
     bluebutton1.hidden = true 
     bluebutton2.hidden = false 
    } 

    @IBAction func SecondHidden(sender: AnyObject) { 
     bluebutton2.hidden = true 
     bluebutton9.hidden = false 
    } 

    @IBAction func ThirdHidden(sender: AnyObject) { 
     bluebutton3.hidden = true 
     bluebutton8.hidden = false 
    } 

    @IBAction func FourthHidden(sender: AnyObject) { 
     bluebutton4.hidden = true 
     bluebutton5.hidden = false 
    } 

    @IBAction func FiftHidden(sender: AnyObject) { 
     bluebutton5.hidden = true 
     bluebutton6.hidden = false 
    } 

    @IBAction func SixthHidden(sender: AnyObject) { 
     bluebutton6.hidden = true 
     bluebutton4.hidden = false 
    } 

    @IBAction func SeventhHidden(sender: AnyObject) { 
     bluebutton7.hidden = true 
     bluebutton5.hidden = false 
    } 

    @IBAction func EightHidden(sender: AnyObject) { 
     bluebutton8.hidden = true 
     bluebutton3.hidden = false 
    } 

    @IBAction func NinethHidden(sender: AnyObject) { 
     bluebutton9.hidden = true 
     bluebutton7.hidden = false 
    } 
} 
+1

Боже мой ... что код ... подсказка: [Массивы/Коллекция] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/ Swift_Programming_Language/CollectionTypes.html) – luk2302

+1

Проверьте случайную функцию. Твоя случайность заставляет меня сходить с ума. arc4random, arc4random_uniform –

ответ

0

Start, поставив все кнопки в массиве (используйте IBOutletCollection). Теперь вы можете использовать функцию случайных чисел для индексации в массив.

Первоначально спрячьте все кнопки в массиве.

Возьмите измененную копию массива и повторите выбор количества кнопок, которые вы хотите отобразить. На каждой итерации генерируйте случайный индекс, покажите эту кнопку и удалите ее из изменяемой копии.

Repeat ...

+0

Я думал, что это трудно объяснить, и мой английский не так уж хорош, так что это может быть немного трудно понять. Но спасибо за ответ, это поможет мне! –