我们需要设置UIButton
有两种方法,第一种方法是当你触摸它时(向下和向上)你得到一个动作,但是当你长按它时,你得到另一种方法。
例如,要在长时间点击时获取有关它的数据,以及在常规点击时获取相关数据,那么另一件事。
如何使用UIButton实现这一目标?
UIButton *CAT = [UIButton buttonWithType:UIButtonTypeCustom];
CAT.contentHorizontalAlignment=UIControlContentHorizontalAlignmentCenter;
CAT.backgroundColor=[UIColor clearColor];
[CAT addTarget:self action:@selector(newcat:)forControlEvents:UIControlEventTouchUpInside];
我已经开始用这个
添加一个手势了 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
[CAT addGestureRecognizer:longPress];
但只有当你脱下手指时才会触发。 我希望它在1-2秒后我的手指仍在那里时被触发。 我能这样做吗?我可以调整它触发所需的时间吗?
答案 0 :(得分:1)
您可以使用活动UIControlEventTouchDown
,使用延迟时间长按,您必须处理UIControlEventTouchUpInside
和UIControlEventTouchUpOutside
。祝你好运!
答案 1 :(得分:0)
这是正常方法
UIButton *CAT = [UIButton buttonWithType:UIButtonTypeCustom];
CAT.contentHorizontalAlignment=UIControlContentHorizontalAlignmentCenter;
CAT.backgroundColor=[UIColor clearColor];
[CAT addTarget:self action:@selector(newcat:)forControlEvents:UIControlEventTouchUpInside];
UILongPressGestureRecognizer *longpressGesture =
[[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(longPressHandler:)];
longpressGesture.minimumPressDuration = 5; // set the time interval
[longpressGesture setDelegate:self];
[CAT addGestureRecognizer:longpressGesture];
[self.view addsubview: CAT];
长按操作方法
- (void)longPressHandler:(UILongPressGestureRecognizer *)gestureRecognizer {
NSLog(@"longPressHandler");
// do long press action
}
正常行动方法
-(void) newcat:(id)sender
{
// do normal action here
}