-2

I am making an app where you click a button, causing a new button to appear, and the button you clicked to disappears. I want the buttons to appear randomly, and I also want it to always be 4 buttons visible all the time. I can't really figure out how to do this, thanks!

Here's an image of how the start screen looks like:

enter image description here

I've been trying to do this using UIView's hidden property, but it doesn't work so well.
Heres my code so far:

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
    }
}
Marcus Rossel
  • 3,196
  • 1
  • 26
  • 41
Marius Hegg
  • 99
  • 10
  • 1
    Oh my god ... that code ... hint: [Arrays/Collections](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html) – luk2302 May 05 '15 at 19:41
  • 1
    Please check random function. Your random making me crazy. arc4random, arc4random_uniform – Vasyl Khmil May 05 '15 at 19:41

1 Answers1

0

Start by putting all the buttons in an array (use IBOutletCollection). Now you can use your random number function to index into the array.

Initially, hide all the buttons in the array.

Take a mutable copy of the array and iterate for how many buttons you want to show. On each iteration generate a random index, show that button and remove it from the mutable copy.

Repeat...

Wain
  • 118,658
  • 15
  • 128
  • 151
  • I thought it was kind of hard to explain and my english is not that good, so it may be a little hard to understand. But thank you for answer, this will help me! – Marius Hegg May 05 '15 at 19:45