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