#swift3 #watchkit #apple-watch #watchos-3
#swift3 #watchkit #apple-watch #watchos-3
Вопрос:
Чего я хочу:
Я хочу, чтобы индикатор выполнения заполнялся до 100% при нажатии кнопки. Например: кнопка нажата, и индикатор выполнения продолжает заполняться непрерывно только при нажатии, пока не пройдет 2 секунды, а индикатор выполнения не достигнет 100% через 2 секунды.
Что я сделал:
Я попытался имитировать нажатие TouchEvent с помощью распознавателей жестов с длительным нажатием и распознавателя жестов, но не получил удовлетворительного результата. Основная проблема в том, что я не могу смешать жест нажатия с жестом длительного нажатия на одной и той же кнопке. Если бы я мог это сделать, я мог бы, по крайней мере, получить события приземления (касания) и касания (длительное нажатие) и попытаться имитировать желаемое поведение с помощью этого.
У кого-нибудь есть совет или это просто невозможно с текущей структурой?
Ответ №1:
Нашел удовлетворительный обходной путь. Я использую a WKLongPresssGestureRecognizer
с моей кнопкой, которая должна иметь желаемое взаимодействие. Я установил Min Duration
в инспекторе атрибутов 0
значение . И использовал следующий фрагмент в качестве IBAction для моего распознавателя:
@IBAction func pressAndHold(_ sender: AnyObject) {
guard let sender = sender as? WKLongPressGestureRecognizer else {
return
}
if sender.state == WKGestureRecognizerState.began {
print("Touch down")
} else if sender.state == WKGestureRecognizerState.ended {
print("Touch up")
}
}