我的应用程序中有一个UIButton
,并且在TouchDown UIButton
时触发了一个操作。
是否可以在iPhone上的UIButton
上检测到触摸并保持?我希望当用户按住按钮2秒钟或更长时间时触发我的动作。
任何想法?
答案 0 :(得分:27)
UILongPressGestureRecognizer
就是您所需要的。例如,
UILongPressGestureRecognizer *longPress_gr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(doAction:)];
[longPress_gr setMinimumPressDuration:2]; // triggers the action after 2 seconds of press
[yourButton addGestureRecognizer:longPress_gr];
要让您的操作仅触发一次(即,当2秒持续时间结束时),请确保您的doAction:
方法看起来像这样,
- (void)doAction:(UILongPressGestureRecognizer *)recognizer {
if (recognizer.state == UIGestureRecognizerStateBegan) {
// Your code here
}
}
答案 1 :(得分:2)
另一方面,您可以使用this NBTouchAndHoldButton。这正是您想要的,并且很容易实现它:
TouchAndHoldButton * pageDownButton = [TouchAndHoldButton buttonWithType:UIButtonTypeCustom];
[pageDownButton addTarget:self action:@selector(pageDownAction:) forTouchAndHoldControlEventWithTimeInterval:0.2];
祝你好运!