触摸UIView与UIViewControllers中的触摸事件处理

时间:2009-09-29 21:15:27

标签: objective-c iphone events uiview uiviewcontroller

所以,我正在捕获多个触摸并确定每个触摸发生的数量和位置,并且我看到UIView UIViewController之间的行为不同。

基本上,事件处理程序编码如下:(在本例中为touchesEnded,但它确实无关紧要)。在View中发生的是,我得到了整个触摸的集合,但是在控制器中,我一次只能触摸一次,即从来没有触摸的集合,但是TouchesEnded会在每次触摸时执行在同一时刻。

我尽可能相同地添加子视图...... 有人'西班牙可以告诉我发生了什么事吗?为什么控制器版本没有给我收藏?

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{ 
    int total = 0;

    for (UITouch *touch in touches) 
    {
        for(UIView *myView in [contentView subviews])
        {
            if (CGRectContainsPoint([myView frame], [touch locationInView:self.view]))
                total++;  // this is always 1 for the UIViewController
            // but I get the full number within the UIView version
        }
    }
}

2 个答案:

答案 0 :(得分:0)

我怀疑你正在接触但是观点不同。检查contentView是否相同并且具有相同的子视图。

答案 1 :(得分:0)

我不确定我是对的,但这件事总是对我有用。

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{ 
          UITouch *touch = [touches anyObject];
         If(touch.view==your view)
         {
                NSLog("do your task here");
         }
}