0

私のアプリケーションにはボタンがあり、ボタンを押すと、「内側をタッチアップ」と言うと、別のビューが開きます。私の質問は、どうすれば2つのアクションを実行できるかということです。つまり、ボタンを押すと何かをしたい(ボタンを非表示にする、ボタンの画像を変更するなど)、押すのをやめると別のビューに移動したいということです。

4

5 に答える 5

2

「押す」ときに「何かをする」場合は、「タッチダウン」を接続するだけです。

于 2012-08-31T11:32:08.650 に答える
2

これを行う:

[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
}
于 2012-08-31T11:39:23.593 に答える
1

ボタンのデリゲートであるクラスは、状態を追跡し、発生する可能性のあるイベント(ステートマシン)を通じてその状態を管理する必要があります。インスタンス変数を使用して状態を追跡します。

ボタンアクションを処理するとき、コードはそれがどの状態にあるかを判断し、次の状態に移行するために必要な変更を加える必要があります。

于 2012-08-31T11:31:36.890 に答える
0

コードをIBActionsに追加するだけです。次に、InterfaceBuilderを介したさまざまなタッチイベントへのアクションのように。

コード:

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

UIButtonをリンクできるイベントはたくさんあります。

UIControlEventTouchDown
UIControlEventTouchDownRepeat
UIControlEventTouchDragInside
UIControlEventTouchDragOutside
UIControlEventTouchDragEnter
UIControlEventTouchDragExit
UIControlEventTouchUpInside
UIControlEventTouchUpOutside
UIControlEventTouchCancel

参照:UIControlAppleリファレンス

于 2012-08-31T11:36:10.197 に答える
0

ControlEventごとに異なるアクションを使用できます

[button addTarget:self action:@selector(action1) forControlEvents:UIControlEventTouchDown] ;    
[button addTarget:self action:@selector(action2) forControlEvents:UIControlEventTouchUpInside] ;
于 2012-08-31T11:40:04.260 に答える