Есть ли ActivityIndicator (или что-то в этом роде) в WatchKit для Apple Watch? Как вы все можете дать отзыв пользователей о более продолжительной фоновой активности?Есть ли ActivityIndicator в WatchKit для Apple Watch?
ответ
Этот thread on the Apple Developer forums имеет авторитетный ответ от инженера Apple о том, почему вы не должны выполнять сетевые операции с Apple Watch.
Есть две большие причины, чтобы не выполнять сетевые операции с циферблата приложения/расширения:
пользователи взаимодействуют со своими часами в течение короткого периода времени. См. Human Interface guidelines на этом.
Если вы измеряете взаимодействие с вашим приложением iOS за считанные минуты, вы можете ожидать, что взаимодействие с вашим приложением WatchKit будет измеряться в считанные секунды. Поэтому взаимодействие должно быть кратким, а интерфейсы должны быть простыми.
Система может зайти в тупик, если сетевой запрос не завершен.
Наша рекомендация состоит в том, что, в общем, вы не должны выполнять сложные операции сетей внутри Extension WatchKit ...
[Apple рекомендует разработчикам] иметь единый процесс, который отвечает за обновление информации в базе данных (вероятно, ваш IOS приложении), а затем ваши расширения будут иметь (по существу) доступ только для чтения к этому [кэшированным] базам данных ....
Это сказано. Если вам действительно нужен идентификатор UIActivityIndicator, rdar: // 19363748 (я не думаю, что этот еще был открыт радаром) разработчики уже подали заявки на официальную поддержку.
Вы можете создать серию изображений в стиле индикатора активности по вашему выбору, а затем анимировать их с помощью API startAnimatingWithImagesInRange:duration:repeatCount:
. См. Приложение Apple Lister для примера анимации wkinterfaceimage.
В качестве альтернативы посмотрите here для учебника по анимации WatchKit и included "spinner" graphics.
+1, потому что 2) совершенно для меня совершенно. Ну, я прочитал нить, и они говорят о CloudKit. Инженер Apple также бросает ключевое слово «_complex_ networking». Я не думаю, что JSON через HTTP - это сложная сеть. Но, в любом случае, я вижу смысл и должен позволить этому погрузиться. – stk
Что говорит парень-яблок, так это то, что вы должны выполнить любой сетевой запрос, запустив основное приложение в фоновом режиме, т. Е. Не сделав фактический сетевой код в своем приложении расширения. Это связано с тем, что расширение часового пояса (может) сохраняется только тогда, когда приложение открыто на часах. С учетом сказанного это не означает, что приложение watchkit не может инициировать запрос, который происходит в async где-то еще - spinner - это один из способов показать, что что-то происходит, если разработчик хочет проиллюстрировать его таким образом. –
Здесь есть * индикатор активности на часах. Мое приложение выполняет асинхронные фоновые сетевые операции из приложения-компаньона, и если сеть работает медленно, это может занять некоторое время. Неважно, где происходит сетевая активность, было бы неплохо показать пользователю, что это происходит. На часах уже есть индикатор, поэтому было бы тратой драгоценных (ограниченных) ресурсов на загрузку последовательности изображений на часы для чего-то, что уже существует в его бортовой системе, и оно также представило бы более постоянный опыт для пользователя. –
Нет способа отображения ActivityIndicator в WatchKit Framework. Однако вы можете подготовить круговой образ и легко создать бесконечную анимацию самостоятельно. Подготовка изображений и назовите их как этот frame-0, frame-1, frame-2...frame-n
, а затем в вашем коде:
[self.yourInterfaceImage setImageNamed:@"firstFrame-"]; //setting first frame
[self.yourInterfaceImage startAnimatingWithImagesInRange:[self.model imageRange]
duration:0.4
repeatCount:0];
// [self.model imageRange] will return NSRange from 0 to n
// repeatCount == 0 means infinity. Of course you can set some limit, like 100.
Надеется, что это помогает.
В принципе, я ищу стандартный циркулирующий ActivityIndicator, который WatchKit использует при запуске нового ViewController. Если кто-то может поставить именно это как код Копировать + Вставить, он получит мой принятый ответ. :) – stk
Взгляните на мой ответ, это именно то, что мне нужно. +1 за половину ответа. – stk
Но если я упомянул то же имя, что и firstFrame- в setImageNamed. Это дает мне ошибку, говорящую о невозможности найти имя изображения. Требуется ли изменение конфигурации для этого? –
Просто, чтобы добавить к опциям, я создал JBWatchActivityIndicator
проект на GitHub, который позволяет создавать собственные последовательности изображений: https://github.com/mikeswanson/JBWatchActivityIndicator
Он также включает в себя компании Apple, как индикатор активности анимации, если вы не хотите создайте свой собственный.
На мой взгляд, попытка создать собственный Spinner использует чрезмерные ресурсы. Если бы Apple подумала, что это хорошая идея, они бы предложили это.
Вместо этого у меня вместо этого есть изображение, которое вы настраиваете Alpha. Используйте логическое значение, чтобы увидеть, нужно ли добавлять или вычитать Alpha.
if (add)
{
count=count+5;
if (count==100)
{
add=false;
}
}
else
{
count=count-5;
if (count==0)
{
add=true;
}
}
float thealpha=((float)count/100);
[self.scanb setAlpha:thealpha];
}
Я построил простой индикатор активности для компании Apple Watch, доступный здесь https://github.com/tijoinc/WatchActivityIndicator
- 1. Apple Watch Watchkit 2.0
- 2. Apple Watch (WatchKit) push action
- 3. Apple Watch, WatchKit и NSUserDefaults
- 4. Синтезатор речи для Apple Watch/WatchKit
- 5. Распознавание жеста в Apple Watch (WatchKit)
- 6. WatchKit/Apple Watch API: вибрации пользовательской длины?
- 7. Показать видео на Apple Watch WatchKit
- 8. WatchKit - Нужно ли регистрировать приложение Apple Watch в девелоперском центре?
- 9. Apple Watch, WatchKit Extension и основное приложение
- 10. Возможно ли запустить приложение WatchKit на устройстве Actual Apple Watch?
- 11. iAd с Apple Watch
- 12. Есть ли способ получить доступ к акселерометру от Apple Watch?
- 13. Могу ли я заблокировать Apple Watch программно с помощью WatchKit
- 14. Есть ли сенсорный датчик WatchKit?
- 15. Watchkit - Как запланировать уведомление только для Apple Watch?
- 16. Apple Watch Watch Watch
- 17. Обработка данных датчиков Apple Watch в приложении WatchKit
- 18. Настройка другого шрифта, кроме системы в WatchKit (Apple Watch)
- 19. Есть ли эквивалентный класс для UIView в WatchKit?
- 20. Симулятор Apple watchkit недоступен
- 21. WatchKit Уведомление: просмотр отключен на 38-миллиметровом Apple Watch?
- 22. AIR для Apple Watch?
- 23. Симулятор для Apple Watch
- 24. Есть ли что-то вроде UITextView для Apple Watch?
- 25. Непрерывный/повторяющийся WKInterfacePicker для Apple Watch
- 26. Запустить приложение сообщений Apple Watch из другого приложения watchKit
- 27. Не удается установить приложение WatchKit на Apple Watch
- 28. Симулятор Apple Watch не начнется
- 29. Использование CoreLocation с Apple Watchkit
- 30. Изменить идентификатор приложения Apple Watch App
Честно говоря, после прочтения документации и руководства Apple, если вам нужен индикатор активности или индикатор прогресса, то все, что вам «Попробуйте сделать это не подходит для Apple Watch. Apple прямо заявляет, что разработчики могут «ожидать взаимодействия с часами в секундах [не минут]». Взаимодействие происходит быстро. Пользователю не нужно ждать больше секунды для загрузки. –
Это звучит неплохо в теории, но при извлечении данных по сети вы не можете гарантировать, что все готово за 1 секунду. Интерфейс WatchKit не работает, когда я загружаю JSON с помощью Alamofire. Пользователь видит только черный экран часов и считает, что приложение сломано. Что бы вы сделали, чтобы исправить это? – stk
Проверьте мой ответ, чтобы узнать подробности об этом. Надеемся, что в будущей итерации WATCH вы сможете выполнить эти задачи прямо на устройстве. –