Как выполняется переход куба Instagram Stories в iOS?

При перелистывании между историями в новой функции Instagrams «Истории» (вы знаете этот кубический переход при переходе от одной истории к другой) я не могу понять, как они это делают!

Прежде всего, если вы углубитесь в функциональность, вы обнаружите, что она работает точно так же, как переход UIPageViewControllers:

— Он отскакивает при смахивании быстро переходить от одного представления к другому.
— вы можете приостановить смахивание в середине перехода, коснувшись экрана.

Команда разработчиков не могла использовать решение, основанное на более известных обходных путях, например:
https://www.appcoda.com/custom-view-controller-transitions-tutorial/
Потому что, насколько мне известно, мои два приведенных выше утверждения невозможно достичь ни с чем, кроме PageViewController.

Это заставляет меня думать, что команда разработчиков Instagram получила доступ к новому стилю перехода для PageViewController, также известному как Cube-scroll, или это обходной путь, о котором я не знаю?

Есть идеи?


Некоторое время назад я попытался воссоздать эту функциональность. Вы можете проверить исходный код на GitHub: https://github.com/oyvind-hauge/OHCubeView

Я использую режим прокрутки (с включенным разбиением по страницам) и для каждого подпредставления я ‘ m манипулируя ими как функцией текущего смещения по оси x данного представления в представлении прокрутки. Фактическая анимация выполняется на уровне каждого подпредставления с использованием базовой анимации (точнее, преобразование матрицы идентичности, заданной CATransform3DIdentity, с использованием метода CATransform3DRotate).

Эффекты тени также применяются к слоям подпредставления (view.layer.opacity), где количество теней определяется тем, какая часть представления отображается на экране.

Моя реализация решает обе ваши проблемы (отскакивает при пролистывании, может приостанавливать пролистывание) . Я уверен, что это также можно было реализовать с помощью UIPageViewController, но я ненавижу работать с ними.


0

Я думаю, вы слишком сильно задумываетесь о части контроллера. Эффект может быть легко достигнут с помощью CATransformLayer и трехсторонней кубической структуры представления, где одно представление выравнивается с плоскостью экрана, а два других повернуты на -90 и 90 градусов по их ось y. Затем получите жест панорамирования для поворота сцены. После успешного поворота на 90 градусов (в любом направлении) вы можете либо быстро сбросить сцену (так, чтобы продолжение вращения выглядело так, как если бы оно продолжалось, но на самом деле камера вернулась в исходное положение), либо вы можете выполнить полный поворот на 360 градусов, и просто обновите предыдущую и следующую «страницы». Один контроллер может справиться с этой сценой. Если вы предпочитаете иметь каждую страницу в качестве контроллера, возможно, вы все равно можете использовать один контроллер для сцены, а затем использовать контроллеры страниц в качестве дочерних контроллеров и настроить их представления, как описано выше.

См. эту статью для получения дополнительной информации о CATransformLayer . В их примере уже создается что-то очень близкое к тому, что вам нужно.

Улучшите этот ответ
ответил 29 сен 2016, в 22:18
добавить комментарий |

Я думаю, что вы слишком сильно задумываетесь о части контроллера. Эффект может быть легко достигнут с помощью CATransformLayer и трехсторонней кубической структуры представления, где одно представление выравнивается с плоскостью экрана, а два других повернуты на -90 и 90 градусов по их ось y. Затем получите жест панорамирования для поворота сцены. После успешного поворота на 90 градусов (в любом направлении) вы можете либо быстро сбросить сцену (так, чтобы продолжение вращения выглядело так, как если бы оно продолжалось, но на самом деле камера вернулась в исходное положение), либо вы можете выполнить полный поворот на 360 градусов, и просто обновите предыдущую и следующую «страницы». С этой сценой может справиться один контроллер. Если вы предпочитаете использовать каждую страницу в качестве контроллера, возможно, вы все равно можете использовать один контроллер для сцены, а затем использовать контроллеры страниц в качестве дочерних контроллеров и настроить их представления, как описано выше.

См. эту статью для получения дополнительной информации о CATransformLayer . Их пример уже создает что-то очень близкое к тому, что вам нужно.



Как изменить тему Instagram? — Приложение для предварительного просмотра

Привет, любители приложений Preview! Многие из вас спрашивают меня: «Как мне изменить тему Instagram?», «Что, если я захочу использовать другой фильтр?»

Вот 5 способов вы можете перенести ленту Instagram из одной темы в другую:

1. Используйте разделитель темы
2. Просто сделай это
3. Измените тему сезонов
4. Сделайте радужную ленту
5. Используйте фотографию моста.

Я дам вам несколько советов и вдохновлюсь на это. Начнем!

1. Используйте разделитель темы

Разделитель темы — это линия , которая разделяет ваши старые тему из вашей новой темы.

Самый простой — загрузить 3 белых изображения . Они будут разделителем вашей темы.

Если вам этого недостаточно, вы можете проявить творческий подход. Многие люди используют милые рисунки, смайлики или цитаты в качестве переходов..

Подсказка :

  • Найдите разделители тем на @themeseparator или проверьте #themedivider
  • Затем используйте функцию репоста, чтобы добавить разделитель темы в ваше приложение для предварительного просмотра.

Вот вам вдохновение:

2. Просто сделайте это

Просто измените свою тему! Не переживайте по этому поводу.

Люди привыкнут к вашей новой теме после того, как вы опубликуете 3 фотографии с вашим новым фильтром и стилем.
А после 9 фотографий все будут увидеть свой новый дизайн. Так что не переживайте из-за этого слишком сильно.

Подсказка: Сообщите своим друзьям, что вы собираетесь изменить стиль своей ленты. Скажите им в своей подписи, что грядут изменения, чтобы они были взволнованы (и заинтригованы). Вы даже можете показать им свое приложение для предварительного просмотра в своих историях в Insta Stories (скрыть свои будущие публикации, чтобы они оставались загадочными).

Вот как наша команда Preview делает это в своих историях в Insta Stories:

А вот несколько примеров другие любители превью, которые быстро меняют свою тему Instagram:

  • @blissfulspnapshot: начали использовать белую рамку «Аура».
  • @thefattykid: начали яркую белая тема (белый фильтр)

3. Измените тему в зависимости от сезона

Сара из @bookgirlingmoments — прекрасный пример для этого. Она всегда меняет тему в зависимости от времени года. Так что каждый раз, когда она меняет фильтр, это выглядит очень естественным.

Мишель из @ mich.elle.imagery — еще один прекрасный пример. Она меняет реквизит и цветовую тему своих фотографий в зависимости от сезона. Посмотрите, как скоро она перейдет в осень.

Так что, если вы не знаете, когда менять фильтр, дождитесь смены сезона — хорошая идея. Вашим последователям это будет казаться естественным .

4. Сделайте радужную ленту

Это один из моих любимых способов перехода между темами!

Если вы хотите плавно изменить свою тему, вы можете сделать это, медленно меняя цвета на своих фотографиях . Это самая важная уловка.

Используйте цветовое колесо, чтобы помочь вам . Позвольте мне объяснить:

  • Какие основные цвета в вашей теме на данный момент?
  • Теперь взгляните на цветовое колесо ниже и выберите цвет рядом с ним
  • Цвет из вашей старой и новой темы будет дополнять друг друга.
  • Этот трюк сделает всю вашу тему Instagram очень плавной, как цветовой круг

Например, если вы публиковали фотографии, на которых много синего (океан), то вы можете опубликовать что-то с зеленым (например, растения). Это очень естественный переход.

Вот вам прекрасные примеры:

  • @ jac.cunningham: от оранжевого до красного и розового
  • @lucahairstyling: от черного к белому, затем к розовому и красному

Скриншоты не соответствуют их требованиям. Посетите их аккаунты и испытайте на себе эффект цветового круга. Это красиво, когда вы его прокручиваете.

Подсказка: Меняйте цвет вашей темы каждые 9 фотографий . Вы также можете менять каждые 12 фото или 21 фото или больше. Не реже чем каждые 9 фотографий, иначе эффект перехода не будет таким приятным, когда люди будут прокручивать вашу ленту.

5. Используйте фотографию «мост»

Допустим, вы хотите кардинально изменить темы. Например, вы хотите перейти от оранжевой к фиолетовой теме. Это совершенно разные цвета.

Чтобы это сработало, вам нужно сосредоточиться на цветах ваших фотографий больше, чем когда-либо.

  • Используйте цвета на фотографиях, чтобы преодолеть разрыв между двумя темами.
  • Объедините элементы и цвета каждой темы

В нашем случае сочетайте оранжевый и фиолетовый цвета на одной фотографии . Эта фотография будет фотографией-мостом между вашей старой и новой темами.

Это то, что делает @modern_gypsy_living. Посмотрите на ее канал ниже.
В качестве фотографии моста она использовала тарелку с овощами. На тарелке есть немного фиолетового и немного оранжевого/желтого, а загорелая кожа девушки напоминает вам апельсин. Благодаря этому фото в теме устанавливается фиолетовый цвет. На следующей фотографии будет меньше оранжевого и еще больше фиолетового (это фотография заката с волной). А на следующем фото после этого только фиолетовый (цветы).

Видите, как она изменила свой канал? Сначала немного пурпурного, затем больше пурпурного, а затем только пурпурного.

Вы перенесли свою тему Instagram?

Была ли эта запись полезной? Планируете ли вы перенести свою тему Instagram?
Если у вас есть какие-либо вопросы, оставьте их ниже!

А если вам нужны дополнительные советы по фидам, загрузите мой шаг пошаговое руководство по Instagram . Я поделился там ВСЕМИ своими секретами.

Удачи!

Наше самое загружаемое руководство по Instagram

Все, что вам нужно знать:
Дизайн каналов, хэштеги, планирование, истории Insta, IGTV …
И стратегии для увеличения вашего аккаунта.

Проверьте свой почтовый ящик!

 Загрузить в App Store
► Скачать в Google Play

+400 000 инстаграммеров уже используют приложение Preview для редактирования, планирования и планирования своей ленты. Если вы еще не пробовали, вы упускаете.

Оцените статью
logicle.ru
Добавить комментарий