2016-04-30 48 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值。