【问题标题】:UIButton : managing dynamic creation and touch eventsUIButton:管理动态创建和触摸事件
【发布时间】:2010-06-23 01:37:14
【问题描述】:

我目前正在我的视图中动态创建 UIButton 对象。

我有一个 NSMutableArray 包含有关它们的信息(id - 标签)。

然后我通过在 MutableArray 上进行 for 迭代来创建我的视图对象。

我正在尝试在我的按钮上使用此代码来捕捉触摸事件:

[myButton addTarget:self action:@selector(selectedButton:) forControlEvents:UIControlEventTouchUpInside];

我的 selectedButton 方法被成功调用,但我不知道按钮被触摸了。

我尝试过这样做:

-(void)selectedButton:(id)sender {...}

但不知道如何处理 sender 对象。

提前感谢您的帮助!

【问题讨论】:

    标签: iphone dynamic uibutton creation


    【解决方案1】:

    在 .m 文件的顶部,输入如下内容:

    enum {
        kButtonOne,
        kButtonTwo  
    };
    

    当你创建你的按钮时,这样做

    myButton.tag = kButtonOne;
    

    然后在您选择的按钮方法中,执行以下操作:

    -(void)selectedButton:(id)sender {
      switch (sender.tag) {
        case kButtonOne:
          // do something here
          break;
        case kButtonTwo:
          // do something else here
          break;
      }
    }
    

    【讨论】:

      【解决方案2】:

      mybutton.tag 设置为某个值,然后在selectedButton:sender 中检查该标签。

      【讨论】:

        【解决方案3】:
        -(void)viewDidLoad{
        
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        
        button.frame = CGRectMake(80.0, 210.0, 40.0, 30.0);
        
        button.tag=1;
        
        [button addTarget:self 
                   action:@selector(aMethod:)
         forControlEvents:UIControlEventTouchDown];
        
        [button setTitle:@"raaz" forState:UIControlStateNormal];
        
        [self.view addSubview:button];
        
        }
        
        -(IBAction)aMethod:(id)sender{
        
        UIButton *btn=(UIButton *)sender;
        
        NSLog(@"I have currently Pressed button=%d",btn.tag);
        
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多