无法检测到按钮上的“滑动打开”事件

Posted

技术标签:

【中文标题】无法检测到按钮上的“滑动打开”事件【英文标题】:Unable to detect "slide on" event on a button 【发布时间】:2014-07-04 17:39:53 【问题描述】:

我正在尝试检测按钮上的“滑动打开”事件。我希望用户能够将他们的手指滑过我的几个按钮,并且当他们滑到按钮上时会触发一个事件。现在它只适用于“触地”,但不检测幻灯片。

这是我的两个按钮。 “触地”会触发声音。

- (IBAction) play1

// Get the main bundle for the app
CFBundleRef mainBundle;
mainBundle = CFBundleGetMainBundle ();

// Get the URL to the sound file to play
soundFileURLRef = CFBundleCopyResourceURL (
                                           mainBundle,
                                           CFSTR ("1"),
                                           CFSTR ("wav"),
                                           NULL
                                           );

// Create a system sound object representing the sound file
AudioservicesCreateSystemSoundID (
                                  soundFileURLRef,
                                  &soundFileObject
                                  );

AudioServicesPlaySystemSound (self.soundFileObject);


- (IBAction) play2 

// Get the main bundle for the app
CFBundleRef mainBundle;
mainBundle = CFBundleGetMainBundle ();

// Get the URL to the sound file to play
soundFileURLRef = CFBundleCopyResourceURL (
                                           mainBundle,
                                           CFSTR ("2"),
                                           CFSTR ("wav"),
                                           NULL
                                           );

// Create a system sound object representing the sound file
AudioServicesCreateSystemSoundID (
                                  soundFileURLRef,
                                  &soundFileObject
                                  );

AudioServicesPlaySystemSound (self.soundFileObject);

任何通过简单地滑动按钮来获得此功能的帮助将不胜感激!

【问题讨论】:

【参考方案1】:

UIButton 上没有“滑过”事件。您需要触摸或触摸以获取按钮本身的事件。

您可以做的是将UIPanGestureRecognizer 添加到您的视图中,然后如果触摸在您的按钮视图上 (- (CGPoint)locationInView:(UIView *)view),则在委托中签入UIGestureRecognizerStateChanged

【讨论】:

以上是关于无法检测到按钮上的“滑动打开”事件的主要内容,如果未能解决你的问题,请参考以下文章

在后台检测主页按钮长按事件

ios/objective-c: 检测 tabbarbutton 按下事件

当检测到 pointermove 时,不会针对链接上的鼠标操作触发 pointerup 事件

无法将事件添加到情节提要中的按钮

如何检测按钮的保持事件?

动态创建到 WPF 表单的用户控件上的按钮单击事件