У меня есть макет часов Apple с одной меткой (WKinterfaceLabel).Обновление текста метки частично работает;последнее обновление метки (на симуляторе) задерживается на десятки секунд, иногда около минуты.
Вот что я сделал:
Мой макет часов с яблоком включает в себя одну метку (WKinterfaceLabel) сверху;под ним я разместил группу, которая покрывает остальную часть экрана, желтую область.
Я поместил Распознаватель жестов Pan сверхужелтой области, и я подключил его к
@IBAction func handleGesture(recognizer: WKPanGestureRecognizer)
Вот что появляется на симуляторе;это как ожидалось и правильно:
Код в class InterfaceController: WKInterfaceController
получает координаты от распознавателя жестов и печатает их на консоли, а также обновляет текст метки.Аннотация включает в себя «начало» для мыши, «изменение» для перемещения мыши и «окончание» для мыши вверх.
{
@IBOutlet weak var inputLabel: WKInterfaceLabel!
@IBAction func handleGesture(recognizer: WKPanGestureRecognizer) {
var state = "unknown"
if recognizer.state == WKGestureRecognizerState.began {
state = "began"
} else if recognizer.state == WKGestureRecognizerState.changed {
state = "changed"
} else if recognizer.state == WKGestureRecognizerState.ended {
state = "ended"
}
let message = "\(state) \(recognizer.locationInObject())"
print (message)
inputLabel.setText(message)
}
При перемещении указателя мыши в желтой области на симуляторе создается правильный вывод на консоли .
(в 4:07:17)
Но метка обновляется только до последнего («измененного») пункта назначения, дажехотя распечатка на консоли показывает, что «завершенное» событие также получено и использовалось для обновления метки.
(в 4:07:27)
Ярлык обновляется только десять, двадцать, а иногда и больше
(в 4:07:57)
Итак, вопросы:
- Почему такая чрезмерная задержка?
- Как я могу предотвратить это?
Спасибо за вашу помощь и понимание!