两个国家 - >两个动作 - >适用于iOS 7的一个UIButton

时间:2014-03-27 22:25:33

标签: cocoa-touch ios7 uibutton

我想要完成一些事情我甚至很难向你解释,但是我要去尝试。

我有一个UIButton按钮1 )并希望它根据上下文状态执行两个不同的操作此特定按钮,但上下文状态由另一个UIButton按钮2 )控制。

我希望这张图片可以解释我在寻找的东西:

enter image description here

现在......我不是在寻找我需要实现的确切代码,而是想知道如何实现这一点,可能会对某些方法或类使用提示。

注意:我已经考虑过更改UIButton标记以控制操作,但我无法更改标记,因为我需要它来控制操作的行为。此外,( Button1 )一旦使用了第二个动作,就必须返回原始状态。

2 个答案:

答案 0 :(得分:3)

根据您的描述,我建议您应该有两个IBActions并设置UIButton 1的属性。您的.h头文件看起来像 -

-(IBAction)button1Pressed:(id)sender;

-(IBAction)button2Pressed:(id)sender;

@property (strong, nonatomic) IBOutlet UIButton* button1;

当button1属性连接到你的按钮时,通过在界面构建器中按住Ctrl键拖动。

然后在.m实现文件中,以下设置将使您能够执行您正在寻找的内容。

-(IBAction)button2Pressed:(id)sender{

if (self.button1.selected){

self.button1.selected = NO;

}else

self.button1.selected = YES;


}

因此,当你按下button2时,这将改变button1的状态,方法是将其设置为“选中”,这意味着button1将执行你需要的任何操作,其中状态由button2控制。

-(IBAction)button1Pressed:(id)sender{

if (self.button1.selected){

//Place your code here for button 1 to do something in this state

} else

//Place your code here for button 1 to do something in this UN-selected state

}

我希望这有助于您尝试做的事情。 谢谢,吉姆。

答案 1 :(得分:0)

你可以使用UIButton的UIControlState和if语句。

(即

buttton.selected....
buttton.enabled.....
buttton.highlighted....

如果我理解正确吗?