iOS 中的按钮触摸状态

Button Touch State in ios

本文关键字:触摸 状态 按钮 iOS      更新时间:2023-09-26

我想知道按钮在按下时的状态以及当用户从按钮上移开手指时,就像在 JavaScript 中一样有事件 OnKeyDown 并显示警报 onKeyup 在 iOS 中显示另一个警报我正在寻找一些像 JavaScript 的东西,我找到了 touchupInside(ONkeyDown( touchupOutside(OnkeyUp(,但是当按钮启动时我无法记录任何事情(意味着用户从按钮中删除他/她的 fingure (这在 iOS 中是否可能,我正在寻找一些类似的事情

UIButton *button = (UIButton *)sender;
button.selected = ![button isSelected]; // Important line
if (button.selected)
{
    NSLog(@"Selected");
    NSLog(@"%i",button.tag);
}
else
{
    NSLog(@"Un Selected");
    NSLog(@"%i",button.tag);
}

我认为您需要的是不同的控制事件OnKeyDown事件,一旦点击按钮,您就需要UIControlEventTouchDown事件和您需要onKeyup UIControlEventTouchUpInside通过使用这两个事件 对于按钮,您可以获得您想要的,例如

- (void)viewDidLoad 
 {
  [super viewDidLoad];
  UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
  [button setFrame:CGRectMake(0, 100, 150, 100)];
  [button setTitle:@"Touch" forState:UIControlStateNormal];
  [button addTarget:self action:@selector(onKeyupEvent:) forControlEvents:UIControlEventTouchUpInside];
  [button addTarget:self action:@selector(onKeyDownEvent:) forControlEvents:UIControlEventTouchDown];
  [self.view addSubview:button];
 }
 - (void)onKeyupEvent:(id)sender
{
   NSLog(@"key up event");
}
- (void)onKeyDownEvent:(id)sender
{
   NSLog(@"key down event");
}

您可以使用许多事件,并且您可以通过谷歌搜索UIControl Class Reference找到整个列表。看看constant部分中的control events

此外,您可以通过执行以下操作来触发这些事件:

[button addTarget:self action:@selector(ButtonEvent:) forControlEvents:UIControlEventTouchUpInside];

然后添加以下方法:

-(IBAction)ButtonEvent:(id)sender {
    // do something...
}