如何将触摸事件限制到特定区域或UIView?

时间:2011-07-30 17:44:19

标签: objective-c cocoa-touch

如何限制特定区域的触摸或UIView

换句话说,我在视图上有一个UIButton但似乎被触摸禁用了。

我还应该写一下,触摸按照我的意愿行事,但就像我说的那样,我失去了对UIButton的控制权。

@Implementation
...


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    ...
}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    ...
}


- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    ...  
}

我解决了我的问题...

(我的错误)我制作了一个较小的UIView,UIButtons位于它之外。子视图附在UIView上。 (我可以看到按钮,但我甚至无法按下它们)

解决方案(其中2个有效):

  • 将UIButtons的addSubview添加到self.view
  • 或...将较小的UIView放大到340 x 480。

1 个答案:

答案 0 :(得分:0)

如果您的视图(您在其中定义了touchesBegan等)没有将触摸转发到响应者链中的下一个响应者(其中有您的按钮),您可以尝试调用[super] in所有这些方法,即:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    ...
    [super touchesBegan:touches withEvent:event];
}

和其他方法相同。另见讨论here