Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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_Button_Interface Builder_Slide_Ibaction - Fatal编程技术网

如何在iPhone上创建当用户将手指滑过按钮时激活的按钮

如何在iPhone上创建当用户将手指滑过按钮时激活的按钮,iphone,button,interface-builder,slide,ibaction,Iphone,Button,Interface Builder,Slide,Ibaction,我正在编写一个iPhone应用程序,它有一个钢琴般的界面。用户会看到许多大按钮,它们之间没有空格。目前,我已经在Interface Builder中创建了iActions,方法是用鼠标右键将按钮拖动到相应的视图控制器界面文件中。这将创建一个方法: -(IBAction) buttonTouchDown: (id) sender 在这个函数的主体中,我包含了响应此操作的代码 这在我点击按钮时有效,但当我将手指拖动到多个按钮上时,只有第一个按钮激活。当我将手指拖动到按钮上时,我需要在手指处于按钮上

我正在编写一个iPhone应用程序,它有一个钢琴般的界面。用户会看到许多大按钮,它们之间没有空格。目前,我已经在Interface Builder中创建了iActions,方法是用鼠标右键将按钮拖动到相应的视图控制器界面文件中。这将创建一个方法:

-(IBAction) buttonTouchDown: (id) sender
在这个函数的主体中,我包含了响应此操作的代码

这在我点击按钮时有效,但当我将手指拖动到多个按钮上时,只有第一个按钮激活。当我将手指拖动到按钮上时,我需要在手指处于按钮上方时激活第一个按钮。然后,当我的手指离开按钮进入第二个按钮时,我需要第二个按钮激活,第一个按钮停用


任何建议都将不胜感激

我还没有尝试过,但请尝试将新添加的手势识别器添加到按钮中。选择滑动方向(右/左),并相应地执行[按钮设置启用]功能。类似于当刷卡发生时,将按钮设置为启用,将所有其他按钮设置为禁用


和平

按钮不是好办法。UIView有各种各样的触摸方法,可以更好地工作。或者,使用自定义手势识别器。

您也可以使用touchsbegind功能。使用此功能,您可以轻松说出如果按下/触摸一个按钮(或多个按钮)会发生什么情况

代码应该如下所示:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        UITouch *touch = [[event touchesForView:self.view] anyObject];

    if(touch == YourButton){
         //so some stuff after touching the button

    }
}

别忘了将.h中的按钮去色,就像ibuibutton*MyButton

您应该使用自定义手势识别器,而不是按钮。如果动态加载按钮,则无法在标题中声明,该怎么办。