【问题标题】:How to access multiple buttons in access function?如何在访问功能中访问多个按钮?
【发布时间】:2012-07-15 20:02:46
【问题描述】:

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

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

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      tmen in m-file (in 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];
      
       }
      

      alike 用不同的方式声明 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;
             }
       }
      

      【讨论】:

        猜你喜欢
        • 2018-08-11
        • 1970-01-01
        • 2012-09-10
        • 2017-04-29
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 2010-12-14
        • 1970-01-01
        相关资源
        最近更新 更多