【问题标题】:iphone development: one button two actionsiphone开发:一键两个动作
【发布时间】:2012-08-31 11:26:32
【问题描述】:

在我的应用程序中,我有一个按钮,当按下它时,可以说“在里面触摸”另一个视图被打开。那么我的问题是,我怎样才能做两个动作?我的意思是,当我按下按钮时,我想做一些事情(比如隐藏按钮或更改按钮的图像),当我停止按下时,我想导航到另一个视图。

【问题讨论】:

    标签: iphone objective-c ios button action


    【解决方案1】:

    这样做:

    [yourbutton addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
    
    [yourbutton addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
    

    现在选择器是:

    -(IBAction)touchUp :(id)sender{
      UIButton *btn = (UIButton *)sender;
      [btn setImage:yourImage forState:UIControlStateHighlighted]; 
    }
    
    -(IBAction)touchDown :(id)sender{
    
      //Navigate here
    }
    

    【讨论】:

      【解决方案2】:

      如果你想在'按下'时'做某事',那么只需连接'Touch Down'

      【讨论】:

        【解决方案3】:

        作为按钮委托的类需要跟踪状态,并通过可能发生的事件(状态机)来管理该状态。使用实例变量来跟踪状态。

        当您处理按钮操作时,代码应该确定它处于什么状态,并进行必要的更改以移动到下一个状态。

        【讨论】:

          【解决方案4】:

          您可以对不同的 ControlEvents 使用不同的操作

          [button addTarget:self action:@selector(action1) forControlEvents:UIControlEventTouchDown] ;    
          [button addTarget:self action:@selector(action2) forControlEvents:UIControlEventTouchUpInside] ;
          

          【讨论】:

            【解决方案5】:

            只需将您的代码添加到 IBActions。然后通过界面构建​​器对不同的触摸事件进行类似的操作。

            代码:

            [yourUIButton addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventXXXXX];
            

            您可以将 UIButton 链接到很多事件:

            UIControlEventTouchDown
            UIControlEventTouchDownRepeat
            UIControlEventTouchDragInside
            UIControlEventTouchDragOutside
            UIControlEventTouchDragEnter
            UIControlEventTouchDragExit
            UIControlEventTouchUpInside
            UIControlEventTouchUpOutside
            UIControlEventTouchCancel

            参考:UIControl Apple Reference

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-03-03
              • 2020-12-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-12-06
              相关资源
              最近更新 更多