2015-11-24 8 views
0

У меня есть кнопка с LongPressureGesture, и я хотел бы иметь небольшой ProgressView поверх этой кнопки в качестве визуальной обратной связи для пользователя, распознающего longPressureGesture.Прогресс для LongPressureGesture на кнопке

Я зациклился на том, как определить начало longPressure и длительность longPressure, чтобы иметь возможность установить setProgress() на мой ProgressView.

EDIT: Так что я вдохновил себя на ответы, спасибо. Вот что я сделал. Не стесняйтесь комментировать следующий код, возможно, есть лучшее решение.

private var lpProgress:Float = 0 
private var startTouch: NSTimer! 

@IBAction func pauseJogButtonTouchDown(sender: AnyObject) { 
    self.startTouch = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "updateLPGestureProgressView", userInfo: nil, repeats: true) 
} 

func updateLPGestureProgressView() { 
    self.lpProgress += 0.1 
    self.lpGestureProgressView.setProgress(self.lpProgress, animated: true) 
    if self.lpProgress >= 1 { 
     self.startTouch.invalidate() 
     self.pauseBarButton.hidden = true 
     self.lpGestureProgressView.setProgress(0.0, animated: false) 
     self.toolbarHomeMadeView.hidden = false 
     self.switchToState(.Paused) 
    } 
} 

@IBAction func pauseJogButtonTouchUpInside(sender: AnyObject) { 
    self.lpProgress = 0 
    self.startTouch.invalidate() 
    self.lpGestureProgressView.setProgress(0.0, animated: false) 
} 

ответ

1

В этом случае вам не нужно устройство LongPressureGesture. Используйте «Touch Down» IBAction UIButton, чтобы запустить NSTimer, и «Touch Up Inside», чтобы остановить таймер и проверить, была ли задержка правильной. ProgressView вы можете заполнить по таймеру.

1

Настроить NSTimer на touchesBegan.

В то же время запустите анимацию, чтобы оживить представление.

Когда touchesEnded запускается, остановите анимацию, если NSTimer еще не активирован и отменит таймер.

Когда таймер заканчивает выполнение желаемого действия.

Long Press на самом деле не предназначен для такого рода вещей.

 Смежные вопросы

  • Нет связанных вопросов^_^