Как стать автором
Обновить

Как устроено приложение Калькулятор на iPhone

Время на прочтение1 мин
Количество просмотров3.1K

Добро пожаловать в разбор кейсов, как Apple использует элементы UIKit в своих приложениях. Сегодня разберу Калькулятор. До этого уже разобрал Календарь. Я - Иван Воробей, веду телеграмм канал для iOS Разработчиков «Код Воробья».

Приложение маленькое, но сделано на сценах. Сцена одна, класс окна назвали CalculatorWindow.

Контроллер

Root-контроллер назвали CalculatorController. Все элементы вписываются в SafeAreaLayoutGuide.

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

Клавиатура

Кнопки находятся в контейнере CalculatorKeypadView. Сетку кнопок расставили фреймами, а сам контейнер лейаутится с помощью констрейнтов.

Все кнопки это объекты класса CalculatorKeypadButton, он наследуется от UIButton. Внутри кнопок находится системный UILabel, даже кнопка C - Clear сделана текстом.

Для клавиатуры в звонилке Apple все буквы переводила в картинки.

Окно ввода

Окно с введёнными цифрами назвали DisplayView. Ширину лейбла внутри контейнера пересчитывают при каждом вводе новой цифры или операции. На вью добавили 3 жеста - свайп, лонг-пресс и тап.

Высотой лейбла с результатом управляют констрейнтами. Для альбомной ориентации получается странное значение 71.5.

Альбомная ориентация

В портретном режиме скрытых UIView нет. Значит, при повороте устройства, новые кнопки добавляются и расставляются на лету. Кнопки из портретного режима сохраняются между поворотами.

Accessibility

Приложение поддерживает Voice Over и Voice Controlдля всех интерактивных элементов.

Окно с результатом диктуется как «Result, 89, Summary Element».

Теги:
Хабы:
Всего голосов 13: ↑4 и ↓9-3
Комментарии14

Публикации