【问题标题】:How to create buttons which are activated when the user slides their finger over them on iPhone如何创建当用户在 iPhone 上滑动手指时激活的按钮
【发布时间】:2012-05-01 06:44:11
【问题描述】:

我正在编写一个具有类似钢琴界面的 iPhone 应用程序。向用户展示了许多大按钮,它们之间没有空格。目前,我通过鼠标右键将按钮拖入适当的视图控制器接口文件中,在 Interface Builder 中创建了 IBActions。这将创建一个方法:

-(IBAction) buttonTouchDown: (id) sender

在这个函数的主体中,我已经包含了响应这个动作的代码。

这在我点击按钮时有效,但是当我将手指拖动到多个按钮上时,只有第一个按钮会激活。当我将手指拖到按钮上时,我需要在手指放在按钮上时激活第一个按钮。然后,当我的手指离开按钮并进入第二个按钮时,我需要第二个来激活和第一个去激活。

任何建议将不胜感激!

【问题讨论】:

  • 您应该使用自定义手势识别器而不是按钮。

标签: iphone button interface-builder slide ibaction


【解决方案1】:

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

代码应如下所示:

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

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

    }
}

不要忘记像 IBOutlet UIButton * MyButton 一样删除 .h 中的按钮;

【讨论】:

  • 如果你动态加载按钮怎么办,所以没有办法在标题中声明。
【解决方案2】:

我还没有尝试过,但尝试将新添加的手势识别器添加到您的按钮。选择滑动方向(Right/Left)并相应实现[button setEnabled]功能。就像滑动发生时一样,您将按钮设置为启用,将所有其他按钮设置为禁用。

和平

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-29
      • 2011-02-11
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      相关资源
      最近更新 更多