无法检测到按钮上的“滑动打开”事件
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 按下事件