我很清楚地记得Xcode的早期版本提供了在几个不同状态下连接UI元素的IBActions的选项,例如当用户按下按钮但没有抬起手指等等时。我看到了在Xcode 6中,只有一个IBAction在例如按下按钮时触发。
我需要在几个按钮上进行IBAction,当用户触摸按钮时,即使没有抬起手指也会调用它。有没有办法实现这个目标?
答案 0 :(得分:0)
Ya只需选择button
并从那里打开connection inspector
即可根据用户的操作连接多种方法。
或者只需右键单击该按钮并按照此处
连接它
答案 1 :(得分:0)
我认为你正在寻找的事件是UIEventTouchDown
,没有必要解除手指。
以下是UIControlEvents
上的官方Apple文档:
答案 2 :(得分:0)
您可以使用以下方法为不同的事件设置不同的IBAction:
addTarget:action:forControlEvents
活动清单: https://developer.apple.com/library/ios/documentation/uikit/reference/UIControl_Class/Reference/Reference.html#//apple_ref/doc/c_ref/UIControlEvents enter link description here
您还可以通过故事板选择不同事件
答案 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
将被解雇。
希望它能帮到你......