我在tableview的每一行都有两个按钮。一个被标记为“拥有它”另一个“想要它”每个按钮在应用程序启动时以20%的不透明度开始。点按一个按钮时,不透明度设置为100%。我需要逻辑,以便如果一个按钮设置为100%不透明度而另一个按钮设置为20%,则需要将第一个按钮设置为20%,将第二个按钮设置为100%(因此不透明度需要反转)。
每个按钮都有自己的动作,按下时会运行。我可以访问按下的按钮并使用(UIButton * senderButton =(UIButton *)sender)设置不透明度。但是我需要设置另一个按钮的不透明度。如何在按下一个按钮时调用我的动作/功能中的另一个按钮(未按下的按钮)?谢谢!
答案 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;
}
}