iphone - 用手指拖动按钮

标签 iphone objective-c cocoa-touch

假设有五个并排的按钮,我需要知道如何让它们接受(称为)从每个按钮边框外部到内部的拖动。

即就像钢琴一样,如果你拖动手指,每个按钮都会被调用并发出声音

最佳答案

您应该为每个按钮的“拖动输入”事件添加一个处理程序 - 我不确定您是否可以在界面生成器中执行此操作,但以下是如何在代码中执行此操作。

将其放入您的 viewDidLoad 方法中:

[button1 addTarget:self action:@selector(buttonEntered:) forControlEvents:UIControlEventTouchDragEnter];
[button2 addTarget:self action:@selector(buttonEntered:) forControlEvents:UIControlEventTouchDragEnter];
[button3 addTarget:self action:@selector(buttonEntered:) forControlEvents:UIControlEventTouchDragEnter];
[button4 addTarget:self action:@selector(buttonEntered:) forControlEvents:UIControlEventTouchDragEnter];
[button5 addTarget:self action:@selector(buttonEntered:) forControlEvents:UIControlEventTouchDragEnter];

然后

- (void)buttonEntered:(UIButton *)button {
    NSLog(@"Dragged into %@", button);
}

有一个look at this您可以监听不同类型的控制事件。

注意此示例假设您的 .h 文件中已包含此内容:

@property (nonatomic, retain) IBOutlet UIButton *button1;
@property (nonatomic, retain) IBOutlet UIButton *button2;
@property (nonatomic, retain) IBOutlet UIButton *button3;
@property (nonatomic, retain) IBOutlet UIButton *button4;
@property (nonatomic, retain) IBOutlet UIButton *button5;

并在界面生成器等中正确连接它们。

关于iphone - 用手指拖动按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3830072/

相关文章:

ios - 如何使用 KVO 传递值?

iphone - UILabel 属性转储

objective-c - 变量设置为 nil 和 0 之间的区别

objective-c - 什么会导致 CFSocket 自行关闭?

iphone - 为什么 Brightcove 播放器未在 UIWebview 中加载?

iphone - 裁剪逆图?

iphone - 如何测试方法的协议(protocol)?

iPhone SDK - 如何序列化 ABRecord?

iphone - ios5 模拟器中的 storekit 支持 - 键盘不起作用?

ios - 无法为 armv7 和 armv7s 编译 FFMpeg