给按钮相同的行为(双胞胎)

时间:2016-04-30 14:47:05

标签: ios swift uibutton uiimage

我希望我的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!

在我的代码中,我将图像应用于一个来自数组的随机P1按钮;

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

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

现在,我想知道是否有办法让P2按钮"合作"用P1按钮。这意味着如果将图像应用于P1button1,则P2button1将设置为相同的图像! (等等所有按钮)

实施例

P2button1.setImage = UIImage(P1button1) 

这显然不起作用,但希望能给你一些关于我想要达到的目标的线索。

1 个答案:

答案 0 :(得分:0)

一种可能的方法是通过子类化UIButton。也许是这样的......

class TwinButton {
    weak var twin: TwinButton?
}

现在,在您的viewDidLoad方法中,链接所有双胞胎。

p1button1.twin = p2button1
p2button1.twin = p1button1

现在,我写了一套方法,其中有一些"有双胞胎"语义...

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

这些方法只需在selftwin上设置值。