2016-04-30 39 views
0

我想我的UIButtons互相交互 - (與相應的按鈕)給按鈕相同的行爲(雙胞胎)

第一組按鈕;

@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! 

第二組按鈕;

@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! 

在我的代碼從數組應用圖像來一個隨機P1button;

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

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

現在,我想知道是否有辦法使P2button與P1buttons「合作」。這意味着如果圖像被應用到P1button1那麼P2button1被設置爲相同的圖像! (對於所有按鈕等等)

示例;

P2button1.setImage = UIImage(P1button1) 

這顯然不起作用,但希望給你一個線索,我想要實現什麼。

+0

你需要一個更好的數據結構... 18個插座太多了,幾乎不管你在做什麼...... – nhgrif

+0

右鍵後[0] .setImage ...爲什麼你沒有添加P2button1.setImage(UIImage(命名爲:「綠色」),forState:.Normal) –

+0

@SamB因爲按鈕[0]可以是陣列中的任何按鈕。它由shuffleInPlace()函數進行混洗,這意味着它們將以隨機順序排列。 –

回答

0

一種可能的方法是繼承UIButton。也許這樣的事情...

class TwinButton { 
    weak var twin: TwinButton? 
} 

現在,在viewDidLoad方法,連接了所有的雙胞胎。現在

p1button1.twin = p2button1 
p2button1.twin = p1button1 

,我會寫一組方法,這些方法有一些「兩張」語義...

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

和這些方法簡單地設置在selftwin值。

相關問題