Введение Все мы знаем, как выглядит стандартный индикатор загрузки (далее спиннер или загрузчик) на наших iOS-устройствах, который отображается при загрузке данных и других случаях, когда пользователь вынужден ждать окончания процесса.
Но мне всегда было интересно сделать свой собственный загрузчик для использования в своих проектах, поэтому я решил изучить эту сторону вопроса.
Конечно, вы можете с успехом использовать как стандартный загрузчик, так и популярные библиотеки (например ПХУД ), но давайте сегодня попробуем немного интересной настройки!
Протестировано на xcode 13.2.1, Swift 5.
Стандартный UIActivityIndicator iOS
1. Создайте свой собственный простой спиннер
Мы создадим свой класс, который будет использовать элементы фреймворка CoreAnimations — специального фреймворка для отображения анимации и прочего.Из официальной документации:
Основные анимации Обеспечивает высокую частоту кадров и плавную анимацию без нагрузки на процессор и замедления работы приложения.Основными элементами, которые мы будем использовать, будут два класса CoreAnimations: 1) CAShapeLayer это слой, который может отображать кривые Безье UIBezierPath 2) CAReplicatorLayer — это слой, с помощью которого можно создавать копии определенного подслоя с различными геометрическими, временными и цветовыми преобразованиями.Большая часть работы по рисованию каждого кадра анимации выполняется за вас.
Вы устанавливаете параметры анимации, такие как начальная и конечная точки, а Core Animation делает все остальное, перекладывая большую часть работы на выделенное графическое оборудование для ускорения рендеринга.
Вкратце: с помощью UIBezierPath мы создадим фигуру, добавим ее в CAShapeLayer, а затем добавим экземпляр CAShapeLayer в CAReplicatorLayer, который «копируем» и заставим его вращаться с помощью анимации (фактически копии будут меняться прозрачность и это создаст эффект вращения).
Сразу приведу пример кода и прокомментирую его — такой стиль повествования мне нравится больше, чем отдельные куски кода с пояснениями, потому что его можно сразу скопировать себе и посмотреть:
Теги: #Разработка для iOS #Swift #spinner #loader #UIActivityIndicator #Пользовательский счетчик #Пользовательский загрузчикfinal class CustomSpinnerSimple: UIView {
-
Ларте, Эдуард Арман Исидор Ипполит
19 Oct, 24 -
Так Это Тотал Коммандер Или Эксплорер?
19 Oct, 24 -
Вышла Новая Версия Сервиса Яндекс.погода
19 Oct, 24