2015-04-12 3 views
-1

Итак, на скриншоте здесь прилагаются 3 больших «кнопки». При нажатии одной кнопки внизу появляется маленькая стрелка, а ниже изменяется содержимое. Я хотел бы сделать что-то подобное.Пользовательские кнопки с быстрым

Как вы можете видеть на каждой кнопке, есть несколько текстов разного размера. Я думал об использовании настраиваемого сегментарного элемента управления. Это способ сделать? Или я должен использовать пользовательскую кнопку и обрабатывать «выбранное» состояние для каждого из них.

Как сделать пользовательскую кнопку с разными текстами внутри?

enter image description here

+0

WWDC14 session 221 - Создание пользовательских пользовательских интерфейсов. – Abizern

ответ

1

То, что вы описываете, более или менее поведение UITabBar и UITabBarController. Однако я не думаю, что система настроена таким образом, чтобы вы могли настраивать внешний вид.

Пользовательский контроль, который вы описываете, также похож на UISegmentedControl, но не совсем такой. Снова я не думаю, что UISegmentedControl настроен для такого поведения.

Я бы, вероятно, создал пользовательский подкласс UIControl, который имеет 3 состояния (или, еще лучше, N состояний, с текстом для каждого состояния, дополнительные изображения и т. Д., С массивом настроек для всех возможных состояний и делегат, который может быть уведомлен, когда пользователь меняет состояния.)

Тогда вам, вероятно, следует создать родительский контроллер представлений, который содержит настраиваемый элемент управления вверху и представление ниже, на котором размещен один из N дочерних контроллеров представления. Когда пользователь нажимает на один из сегментов вашего элемента управления, вы анималируете в другом контроллере детского представления. Вы можете использовать метод transitionFromViewController:toViewController:duration:options:animations:completion:, который довольно прост в использовании.

+0

Спасибо, неплохо. –

0

Я предлагаю использовать UIPageViewController, как пользователь, как ожидается, проведите пальцем влево и писать, и если одна из кнопок щелкнул вы можете имитировать движение как содержание [UIViewController (s) и индикатор страницы легко

0

Я не думаю, что это возможно с помощью сегментированного элемента управления, если вы не хотите использовать изображение для текста, поскольку UISegmentedControl не поддерживает атрибутированные строки. Я бы использовал 3 UIButtons с атрибутами строк в качестве названий, поэтому вы можете иметь разные размеры шрифта для разных строк. Треугольник внизу можно сделать достаточно легко, используя CAShapeLayer. Было бы лучше подкласса UIButton, поэтому вы можете поместить логику, необходимую для создания заголовка с разными шрифтами, и сделать рисунок за пределами вашего класса контроллера вида.

+0

Приятно это решение. –

Смежные вопросы