我如何在UIView手势下检测UIButton Touch Up事件

时间:2012-01-27 05:04:41

标签: iphone objective-c ios ios5 xcode4.2

我有多个按钮,我将它们添加到UIView中。 我已将TouchDown / TouchUp事件添加到所有按钮中。到此为止,一切都非常简单,完美无缺

但现在我的要求是,我想在视图上滑动,在滑动时,我想在滑动下检测相同的TouchDown / TouchUp事件。 (比如按钮的触地得分,我会更改按钮的高亮图像,然后在触摸时恢复正常图像)

有可能吗?

我怎么能实现它?

2 个答案:

答案 0 :(得分:2)

你是否特别需要滑动手势?

这种方法可以检测手指何时滑过UIView:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

也许你可以创建一个继承自UIButton的类并添加touchesMoved方法:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
   // psuedo code
   [self setBackgroundImageForControlState:@"file.png"];
}

然后在触摸Ended方法中,您可以在:

中交换不同的图像
// when finger is raised off the button
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
   // psuedo code
   [self setBackgroundImageForControlState:@"file.png"];
}

答案 1 :(得分:1)

也许您应该举办UIControlEventTouchDragEnterUIControlEventTouchDragExit等活动? 不确定,但似乎是一个解决方案。