如何访问访问function中的多个button?

我有一个tableview的每一行中的两个button。 一个被标记为“拥有”另一个“需要”每个button在应用程序启动时以20%的不透明度开始。 点击一个button时,不透明度设置为100%。 我需要逻辑,如果一个button设置为100%不透明度,另一个设置为20%,第一个button需要设置为20%,第二个button为100%(所以不透明度需要颠倒)。

每个button都有自己的操作,按下时运行。 我可以访问被按下的button,并设置不透明度(UIButton * senderButton =(UIButton *)sender)。 不过,我需要设置其他button的不透明度。 如何访问另一个button(没有按下的button)在我的动作/函数内部按下时被调用? 谢谢!

您可以为每个button创build一个sockets。 所以你可以从它的容器类中的任何地方设置它的属性。

如果我正确理解你的问题,你可以像这样在头文件中声明你的button:

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

在m文件中(在viewDidLoad中)你可以用一个select器和不同的标签设置这个button:(关于创buildbutton的更多信息: 如何以编程方式创build一个基本的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; 

那么,你可以通过改变不透明度来实现你的select器:

  -(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; } }