私のアプリケーションにはボタンがあり、ボタンを押すと、「内側をタッチアップ」と言うと、別のビューが開きます。私の質問は、どうすれば2つのアクションを実行できるかということです。つまり、ボタンを押すと何かをしたい(ボタンを非表示にする、ボタンの画像を変更するなど)、押すのをやめると別のビューに移動したいということです。
5 に答える
「押す」ときに「何かをする」場合は、「タッチダウン」を接続するだけです。
これを行う:
[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
}
ボタンのデリゲートであるクラスは、状態を追跡し、発生する可能性のあるイベント(ステートマシン)を通じてその状態を管理する必要があります。インスタンス変数を使用して状態を追跡します。
ボタンアクションを処理するとき、コードはそれがどの状態にあるかを判断し、次の状態に移行するために必要な変更を加える必要があります。
コードをIBActionsに追加するだけです。次に、InterfaceBuilderを介したさまざまなタッチイベントへのアクションのように。
コード:
[yourUIButton addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventXXXXX];
UIButtonをリンクできるイベントはたくさんあります。
UIControlEventTouchDown
UIControlEventTouchDownRepeat
UIControlEventTouchDragInside
UIControlEventTouchDragOutside
UIControlEventTouchDragEnter
UIControlEventTouchDragExit
UIControlEventTouchUpInside
UIControlEventTouchUpOutside
UIControlEventTouchCancel
ControlEventごとに異なるアクションを使用できます
[button addTarget:self action:@selector(action1) forControlEvents:UIControlEventTouchDown] ;
[button addTarget:self action:@selector(action2) forControlEvents:UIControlEventTouchUpInside] ;