【发布时间】:2012-08-31 11:26:32
【问题描述】:
在我的应用程序中,我有一个按钮,当按下它时,可以说“在里面触摸”另一个视图被打开。那么我的问题是,我怎样才能做两个动作?我的意思是,当我按下按钮时,我想做一些事情(比如隐藏按钮或更改按钮的图像),当我停止按下时,我想导航到另一个视图。
【问题讨论】:
标签: iphone objective-c ios button action
在我的应用程序中,我有一个按钮,当按下它时,可以说“在里面触摸”另一个视图被打开。那么我的问题是,我怎样才能做两个动作?我的意思是,当我按下按钮时,我想做一些事情(比如隐藏按钮或更改按钮的图像),当我停止按下时,我想导航到另一个视图。
【问题讨论】:
标签: iphone objective-c ios button action
这样做:
[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
}
【讨论】:
如果你想在'按下'时'做某事',那么只需连接'Touch Down'
【讨论】:
作为按钮委托的类需要跟踪状态,并通过可能发生的事件(状态机)来管理该状态。使用实例变量来跟踪状态。
当您处理按钮操作时,代码应该确定它处于什么状态,并进行必要的更改以移动到下一个状态。
【讨论】:
您可以对不同的 ControlEvents 使用不同的操作
[button addTarget:self action:@selector(action1) forControlEvents:UIControlEventTouchDown] ;
[button addTarget:self action:@selector(action2) forControlEvents:UIControlEventTouchUpInside] ;
【讨论】:
只需将您的代码添加到 IBActions。然后通过界面构建器对不同的触摸事件进行类似的操作。
代码:
[yourUIButton addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventXXXXX];
您可以将 UIButton 链接到很多事件:
UIControlEventTouchDown
UIControlEventTouchDownRepeat
UIControlEventTouchDragInside
UIControlEventTouchDragOutside
UIControlEventTouchDragEnter
UIControlEventTouchDragExit
UIControlEventTouchUpInside
UIControlEventTouchUpOutside
UIControlEventTouchCancel
【讨论】: