То, что вы описываете, более или менее поведение UITabBar
и UITabBarController
. Однако я не думаю, что система настроена таким образом, чтобы вы могли настраивать внешний вид.
Пользовательский контроль, который вы описываете, также похож на UISegmentedControl
, но не совсем такой. Снова я не думаю, что UISegmentedControl
настроен для такого поведения.
Я бы, вероятно, создал пользовательский подкласс UIControl
, который имеет 3 состояния (или, еще лучше, N состояний, с текстом для каждого состояния, дополнительные изображения и т. Д., С массивом настроек для всех возможных состояний и делегат, который может быть уведомлен, когда пользователь меняет состояния.)
Тогда вам, вероятно, следует создать родительский контроллер представлений, который содержит настраиваемый элемент управления вверху и представление ниже, на котором размещен один из N дочерних контроллеров представления. Когда пользователь нажимает на один из сегментов вашего элемента управления, вы анималируете в другом контроллере детского представления. Вы можете использовать метод transitionFromViewController:toViewController:duration:options:animations:completion:
, который довольно прост в использовании.
WWDC14 session 221 - Создание пользовательских пользовательских интерфейсов. – Abizern