2016-04-30 3 views
0

Ich möchte meine UIButtons miteinander interagieren - (Mit der entsprechenden Taste)Geben Sie Tasten gleichen Verhaltens (Zwillinge)

Erste Reihe von Tasten;

@IBOutlet var P1button1: UIButton! 
@IBOutlet var P1button2: UIButton! 
@IBOutlet var P1button3: UIButton! 
@IBOutlet var P1button4: UIButton! 
@IBOutlet var P1button5: UIButton! 
@IBOutlet var P1button6: UIButton! 
@IBOutlet var P1button7: UIButton! 
@IBOutlet var P1button8: UIButton! 
@IBOutlet var P1button9: UIButton! 

Zweiter Tastensatz;

@IBOutlet var P2button1: UIButton! 
@IBOutlet var P2button2: UIButton! 
@IBOutlet var P2button3: UIButton! 
@IBOutlet var P2button4: UIButton! 
@IBOutlet var P2button5: UIButton! 
@IBOutlet var P2button6: UIButton! 
@IBOutlet var P2button7: UIButton! 
@IBOutlet var P2button8: UIButton! 
@IBOutlet var P2button9: UIButton! 

In meinem Code beantrage ich ein Bild zu einem zufällig P1button aus einem Array;

var buttons = [P1button1, P1button2, P1button3, P1button4, P1button5, P1button6, P1button7, P1button8, P1button9] 
     buttons.shuffleInPlace() 

     buttons[0].setImage(UIImage(named: "Green"), forState: .Normal) 

Nun, ich möchte wissen, ob es einen Weg gibt, die P2buttons „kooperieren“ mit den P1buttons zu machen. Das heißt, wenn ein Bild auf P1button1 angewendet wird, dann wird P2button1 auf das gleiche Bild gesetzt! (und so weiter für alle Knöpfe)

Beispiel;

P2button1.setImage = UIImage(P1button1) 

Das ist offensichtlich nicht funktioniert, sondern gibt Ihnen hoffentlich eine Ahnung, was zu erreichen Ich versuche.

+0

Sie ... brauchen eine bessere Datenstruktur für diese ... 18 Ausgänge ist zu viel, fast egal, was Sie gerade tun ... – nhgrif

+0

direkt nach den Tasten [0] .setImage ... warum nicht Sie add P2button1.setImage (UIImage (benannt: "Green"), forState:. Normal) –

+0

@SamB Da Schaltflächen [0] könnte eine der Schaltflächen aus dem Array sein. Es wird durch die shuffleInPlace() Funktion gemischt, was bedeutet, dass sie in zufälliger Reihenfolge sind. –

Antwort

0

Ein möglicher Ansatz wäre durch Unterklassen UIButton. so etwas wie dies vielleicht ...

class TwinButton { 
    weak var twin: TwinButton? 
} 

nun in Ihrer viewDidLoad Methode, verknüpfen alle die Zwillinge auf.

p1button1.twin = p2button1 
p2button1.twin = p1button1 

Nun, würde ich eine Reihe von Methoden schreiben, die einige „mit zwei“ Semantik haben ...

extension TwinButton { 
    setWithTwin(title: String) 
    setWithTwin(backgroundImage: UIImage) 
} 

und diese Methoden einfach den Wert auf self und twin gesetzt.

Verwandte Themen