如何访问访问功能中的多个按钮?

时间:2012-07-15 01:46:53

标签: ios xcode

我在tableview的每一行都有两个按钮。一个被标记为“拥有它”另一个“想要它”每个按钮在应用程序启动时以20%的不透明度开始。点按一个按钮时,不透明度设置为100%。我需要逻辑,以便如果一个按钮设置为100%不透明度而另一个按钮设置为20%,则需要将第一个按钮设置为20%,将第二个按钮设置为100%(因此不透明度需要反转)。

每个按钮都有自己的动作,按下时会运行。我可以访问按下的按钮并使用(UIButton * senderButton =(UIButton *)sender)设置不透明度。但是我需要设置另一个按钮的不透明度。如何在按下一个按钮时调用我的动作/功能中的另一个按钮(未按下的按钮)?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以为每个按钮创建一个插座。这样您就可以从容器类中的任何位置设置其属性。

答案 1 :(得分:0)

如果我正确理解你的问题,你可以在头文件中声明你的按钮:

@interface myController : UIViewController
{
  UIButton *b1;
  UIButton *b2;
}

在m文件中的tmen(在viewDidLoad中)你可以用一个选择器和不同的标签设置这个按钮:(有关创建按钮的更多信息:How do I create a basic UIButton programmatically?

-(void)viewDidLoad
 {
     [super viewDidLoad];

     b1 = [UIButton buttonwithType:UIButtonTypeCustom];
     [b1 addTarget:self withAction:@selector(clickINMyButtons:) forState:UIControlTouchUPInside];  // sorry, I don't remember correct syntax, i'll correct this some later if you needed in it.
     b1.tag = 1;  
     b1.frame = CGRectMake(0,0,12,12); //example
     [self.view addSubView:b1];

 }

同样用不同的声明b2:

b2.tag = 2;

那么,你实现你的选择器改变不透明度:

 -(void)clickINMyButtons:(UIButton *)sender
 {
      if (sender.tag == 1)
       {
         sender.alpha = 1; // or b1.alpha = 1;
         b2.alpha = 0.2;
       }
       else if (sender.tag == 2)
       {
         sender.alpha = 1; // or b2.alpha = 1;
         b1.alpha = 0.2;
       }
 }