IBAction的不同触摸状态

时间:2014-09-04 12:43:36

标签: ios xcode cocoa-touch swift

我很清楚地记得Xcode的早期版本提供了在几个不同状态下连接UI元素的IBActions的选项,例如当用户按下按钮但没有抬起手指等等时。我看到了在Xcode 6中,只有一个IBAction在例如按下按钮时触发。

我需要在几个按钮上进行IBAction,当用户触摸按钮时,即使没有抬起手指也会调用它。有没有办法实现这个目标?

4 个答案:

答案 0 :(得分:0)

Ya只需选择button并从那里打开connection inspector即可根据用户的操作连接多种方法。

enter image description here

或者只需右键单击该按钮并按照此处

连接它

enter image description here

答案 1 :(得分:0)

我认为你正在寻找的事件是UIEventTouchDown,没有必要解除手指。

以下是UIControlEvents上的官方Apple文档:

https://developer.apple.com/library/ios/documentation/uikit/reference/uicontrol_class/reference/reference.html#//apple_ref/c/tdef/UIControlEvents

答案 2 :(得分:0)

答案 3 :(得分:0)

根据您的要求,我正在给您写第二个答案

1)创建一个UIView子类,让我们说MYView这样的事情。

#import "MYView.h"

@implementation MYView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {


}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {


}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {


}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {


}

@end

2)创建一个UIBarButtonItem(相同的技巧可以应用于UIButton,因为它直接从UIView继承),就像这样

UIBarButtonItem *yourBBI = [[UIBarButtonItem alloc] initWithCustomView:[[MYView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)]];

我们走了......如果你只是触摸(不需要释放你的手指)方法

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

将被解雇。

希望它能帮到你......