Обычно делают подклассы
UITabBarItem
и
UITabBarController
. Переопределеют нужные св-ва и методы. В первую очередь переопределить св-во
selectedItems
на свой подкласс и методы выбора по нажатию, добавив в них
layer
анимацию.
Что касается анимации, то я бы провел
path
залив его цветом
.clear
. Путь - круг и идущая от него линия. Причём, если элемент самый крайний, то линия ток слева или справа, для остальных она в обе стороны. Останется добавить лишь
strokeEndAnimation
, которая будет заливать цветом этот путь идя от начало пути в конец. Об этом хорошо написано тут:
https://www.calayer.com/core-animation/2017/12/25/...
Причём вам нужно определить заливку для всех возможных случаев. То есть пути на самом деле будут пересекаться но не будут одним единым путём. Скажем анимация перехода с первого к последнему будет закрашивать у всех промежуточных лишь прямую. Ну и так далее.