我有一个简单的iPhone应用程序,具有简单的视图和自定义视图作为孩子。孩子只是在主视图上画的正方形。
我需要跟踪一个触摸事件,该事件进入此子视图,但是从视图外部开始的触摸中进行跟踪。
到目前为止我尝试过将TouchesBegin / TouchesMoved事件添加到父视图中。还尝试直接添加到子控件,但不跟踪在该控件中未启动的任何触摸。
问题是:
a)我能以某种方式从位置获得控件吗?
b)这是这样做的最佳方式,还是有另一种方式?
再一次,我将GamePlay的这个视频包含在我想要移植的游戏中(我的业余时间)。这不是促销尝试,而是说明了我正在努力实现的目标。我写了Win8和WP7版本的游戏,所以我不想复制另一个人在这里工作。 :)如果你不想知道它是什么游戏,不要看它。如果不注意这个问题,这个问题仍然有效。
http://www.youtube.com/watch?v=13IczvA7Ipo
由于
// Johan
答案 0 :(得分:1)
然后我迭代子视图并且如果它是我正在寻找的类型的视图,然后检查框架是否包含该点。下面的代码当然只是概念。
public override void TouchesMoved (NSSet touches, UIEvent evt)
{
base.TouchesMoved (touches, evt);
UITouch touch = touches.AnyObject as UITouch;
if (touch != null) {
var rp = touch.LocationInView (touch.View);
foreach(var sv in this.View.Subviews)
{
if(!(sv is LetterControl))
continue;
if(sv.Frame.Contains (rp))
{
Console.WriteLine("LetterControl found");
}
}
}
}