【问题标题】:How to Identify a touch/tap on an iPhone screen如何识别 iPhone 屏幕上的触摸/点击
【发布时间】:2010-11-29 00:45:42
【问题描述】:

我需要知道使用哪种方法来识别点击/鼠标点击。我 知道
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {}

当光标移动时触发。 但我想做以下事情-

我有一张图片。 当我单击它时,将创建类似的两个图像。等等

任何人都可以帮忙吗????感谢您的回复。

【问题讨论】:

  • 你问题的引用部分没有正确通过,所以我不知道你想问什么。
  • 您的问题标题具有误导性;这几乎与 Objective-C 无关,而与 CocoaTouch 相关。

标签: iphone objective-c cocoa-touch


【解决方案1】:

点击事件不是由UIView 中的touches 方法回调处理,而是作为UIControl 中的targets-actions 处理。 UIControlUIView 的子类,增加了对点击、拖拽等常用用户动作的抽象,这样你就不需要自己实现逻辑了。

要为用户点击控件添加操作,只需执行以下操作:

[myControl addTarget:self
              action:@selector(didSelectFoo:) 
           forEvents:UIControlEventTouchUpInside];

如果您自己继承 UIControl,或者如果您使用任何提供的控件,例如 UIButtonUITextFieldUILabel 等,这都是可用的。

【讨论】:

  • 这并不完全正确。 UIView 子类确实可以通过覆盖 –touchesBegan:withEvent:、–touchesMoved:withEvent:、–touchesEnded:withEvent: 和 -touchesCancelled:withEvent: 来响应触摸事件,或者控制器对象可以通过委托方法使用相同的接口。
  • Brad 我想你错过了“所以你不需要自己实现逻辑”。是的,您也可以在 UIControl 子类上覆盖 touchedBegan:withEvent: 和其余部分。但整个想法是,对于 100 个用例中的 99 个,您不需要这样做。
  • 短语“点击事件不是由 UIView 中的触摸方法回调处理,而是作为 UIControl 中的目标操作”似乎是说 UIViews 无法响应触摸事件,当它们可以通过时子类化或通过委托。使用委托,甚至不需要向 UIView 添加代码。这只是一个措辞问题,可能会让新 iPhone 开发人员感到困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 1970-01-01
相关资源
最近更新 更多