Действие Триггер, когда я держу UIButton в течение 2 секунд в iPhone
У меня есть UIButton
в моем приложении и действие, которое запускается, когда я TouchDown UIButton
.
Возможно ли обнаружение Touch-and-Hold на UIButton
на iPhone? Я хочу, чтобы мое действие срабатывало, когда пользователь удерживает кнопку в течение 2 секунд или более.
Любые идеи?
Ответы
Ответ 1
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
}
}
Ответ 2
С другой стороны вы можете использовать этот NBTouchAndHoldButton. Это именно то, что вы хотите, и его очень легко реализовать:
TouchAndHoldButton * pageDownButton = [TouchAndHoldButton buttonWithType:UIButtonTypeCustom];
[pageDownButton addTarget:self action:@selector(pageDownAction:) forTouchAndHoldControlEventWithTimeInterval:0.2];
Удачи!