0

我在表格视图的每一行中有两个按钮。一个标记为“拥有它”,另一个标记为“想要它”。当应用程序启动时,每个按钮都以 20% 的不透明度开始。当点击一个按钮时,不透明度设置为 100% 。我需要逻辑,如果一个按钮设置为 100% 不透明度,另一个设置为 20% 被点击,第一个按钮需要设置为 20%,第二个按钮设置为 100%(所以不透明度需要反转)。

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

4

2 回答 2

0

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

于 2012-07-15T02:30:05.260 回答
0

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

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

m-file 中的 tmen(在 viewDidLoad 中)您可以使用一个选择器和不同的标签设置此按钮:(有关创建按钮的更多信息:如何以编程方式创建基本 UIButton?

-(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;
       }
 }
于 2012-07-15T11:55:33.300 回答