Есть ли ActivityIndicator в WatchKit для Apple Watch?

Есть ли ActivityIndicator (или что-то вроде этого) в WatchKit для Apple Watch? Как вы все можете дать отзыв пользователей о более продолжительной фоновой активности?

Ответ 1

Этот поток на форумах разработчиков Apple имеет авторитетный ответ от инженера Apple о том, почему вы не должны выполнять сетевые операции с Apple Watch,

Есть две большие причины не выполнять сетевые операции с вашим приложением/расширением:

  • Пользователи взаимодействуют со своими часами только в течение короткого периода времени. См. Руководства по человеческому интерфейсу на этом.

    Если вы измеряете взаимодействие с вашим приложением iOS за считанные минуты, вы можете ожидать, что взаимодействия с вашим приложением WatchKit будут измеряться в считанные секунды. Поэтому взаимодействие должно быть кратким, а интерфейсы должны быть простыми.

  • Система может зайти в тупик, если сетевой запрос не завершен.

    Наша рекомендация состоит в том, что в целом вы не должны выполнять сложные сетевые операции внутри расширения WatchKit...

    [Apple рекомендует разработчикам] иметь один процесс, который отвечает за обновление информации в вашей базе данных (вероятно, ваше приложение для iOS), а затем ваши расширения будут иметь (по существу) доступ только для чтения к этой [кэшированной] базе данных....


Это сказано. Если вам действительно нужен идентификатор UIActivityIndicator, rdar://19363748 (я не думаю, что этот еще был открыт радаром) разработчики уже подали заявки на официальную поддержку.

Вы можете создать серию изображений в выбранном вами стиле индикатора активности, а затем оживить их с помощью API startAnimatingWithImagesInRange:duration:repeatCount:. См. Приложение Apple Lister для примера анимации.

В качестве альтернативы посмотрите здесь для учебного пособия по WatchKit Animation и включил "spinner" графика.

Ответ 2

Чтобы добавить параметры, я создал проект JBWatchActivityIndicator в GitHub, который позволяет создавать собственные последовательности изображений: https://github.com/mikeswanson/JBWatchActivityIndicator

Он также включает анимацию индикаторов активности Apple, если вы не хотите создавать свои собственные.

Ответ 3

Нет способа отображения 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.

Надеюсь, что это поможет.

Ответ 5

По-моему, попытка создать собственный 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];

}