【问题标题】:How to detect touch event on drawn item using drawRect method?如何使用 drawRect 方法检测绘制项目上的触摸事件?
【发布时间】:2013-10-10 08:47:57
【问题描述】:

如果我使用UIView 的drawRect 方法画一个圆圈,如何检测它的触摸或点击?我有多个圈子,还必须编辑(更改颜色,...)选定的圈子。或者我必须使用另一种方法。 CoreGraphics, OpenGL 在这种情况下有用吗?

【问题讨论】:

  • 你试过touchesBegan吗?
  • 我应该如何得到那个被触摸的圆形对象,并在编辑后只重绘它?
  • 存储圆的参数,如圆心位置(X和Y)和半径(R),然后在toucesBegan和其他触摸方法中,如果触摸的x和y匹配(X-x)^2 +(Y-y)进行计算)^2
  • 您也可以添加一个子视图,在整个框架上绘制一个圆圈并在添加的视图上捕捉触摸
  • 您不能使用drawRect: 来检测触摸事件。 drawRect: 用于绘图;没有其他的。还有其他处理事件的方法。

标签: ios objective-c uikit core-graphics


【解决方案1】:

我找到了答案。我们必须使用CGPath Hit Testing 来执行此操作。检查这个link。

【讨论】:

  • 为什么不使用CGPathContainsPoint?有关 API 详细信息,请参阅link。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 2010-10-25
  • 1970-01-01
相关资源
最近更新 更多