Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何让多个触摸按钮与触摸开始/移动一起工作?_Iphone_Interface Builder_Button_Multi Touch_Touchesmoved - Fatal编程技术网

Iphone 如何让多个触摸按钮与触摸开始/移动一起工作?

Iphone 如何让多个触摸按钮与触摸开始/移动一起工作?,iphone,interface-builder,button,multi-touch,touchesmoved,Iphone,Interface Builder,Button,Multi Touch,Touchesmoved,我有很多按钮,我想用三种不同的方式激活它们 着陆 触碰-多点触碰(同时) 触摸拖动内部(与在钢琴上拖动手指相同) 前两个在IB中显然很容易。然而,包括我在内的许多人在触摸拖动内部时遇到了麻烦。因此,我最终使用了-(void)touchsmoved[参见代码]。这对拖拽效果很好。。。但为了让它工作,我不得不禁用IB中的“用户交互”按钮。这意味着我失去了“触控”和多点触控功能 因此,为了让“触地”工作,我使用了-(void)touchesbeated[参见代码]。这很好,但我不能让多点触摸来工作 有

我有很多按钮,我想用三种不同的方式激活它们

  • 着陆
  • 触碰-多点触碰(同时)
  • 触摸拖动内部(与在钢琴上拖动手指相同)
  • 前两个在IB中显然很容易。然而,包括我在内的许多人在触摸拖动内部时遇到了麻烦。因此,我最终使用了
    -(void)touchsmoved
    [参见代码]。这对拖拽效果很好。。。但为了让它工作,我不得不禁用IB中的“用户交互”按钮。这意味着我失去了“触控”和多点触控功能

    因此,为了让“触地”工作,我使用了-(void)touchesbeated[参见代码]。这很好,但我不能让多点触摸来工作

    有人知道如何在多点触控中同时启动按钮吗?
    或有没有一种方法可以让IB中的触控和按钮功能一起工作

    我尝试了
    touch.view.multi-touchEnabled=Yes并且我已经确保我的按钮在IB中是多点触摸ok。。。但什么都没有

    下面是我的代码。 非常感谢你的帮助

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        UITouch *touch = [[event touchesForView:self.view] anyObject];
    
        CGPoint location = [touch locationInView:touch.view];
    
        if(CGRectContainsPoint(p1.frame, location)) 
        {
            if (!p1.isHighlighted){
                [self pP01];
                [p1 setHighlighted:YES];
        }
    }else {
            [p1 setHighlighted:NO];
        }
        //
        if(CGRectContainsPoint(p2.frame, location)) 
        {
            if (!p2.isHighlighted){
                [self pP02];
                [p2 setHighlighted:YES];
            }
        }else {
            [p2 setHighlighted:NO];
        }
        if(CGRectContainsPoint(p3.frame, location))
        {
            if (!p3.isHighlighted){
                [self pP03];
                [p3 setHighlighted:YES];
            }
        }else {
            [p3 setHighlighted:NO];
        }
    }
    
    ///


    你需要检查每一次触摸,而不是一次随机触摸。因此,
    for(UITouch*t in touch)
    而不是
    UITouch*touch=[touch anyObject]

    - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
        {
            UITouch *touch = [[event touchesForView:self.view] anyObject];
            CGPoint location = [touch locationInView:touch.view];
    
            if(CGRectContainsPoint(p1.frame, location))
            {
                [self pP01];
                [p1 setHighlighted:YES];
            }
            if(CGRectContainsPoint(p2.frame, location))
            {
                [self pP02];
                [p2 setHighlighted:YES];
            }
            if(CGRectContainsPoint(p3.frame, location))
            {
                [self pP03];
                [p3 setHighlighted:YES];
            }
    }