Какие основные компоненты фреймворка UIKit?

«Какие основные компоненты фреймворка UIKit?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

UIKit — это основной фреймворк для построения пользовательских интерфейсов в iOS и tvOS. Его ключевые компоненты можно разделить на несколько категорий:

Базовые классы:

  • UIView — базовый прямоугольный элемент, на котором строится весь интерфейс.
  • UIViewController — управляет группой представлений (UIView), обрабатывает логику экрана и его жизненный цикл.
  • UIResponder — базовый класс для объектов, которые могут обрабатывать и реагировать на события (касания, встряхивания, команды с клавиатуры).

Основные элементы управления (Controls):

  • UIControl — базовый класс для интерактивных элементов.
  • UIButton — кнопка, выполняющая действие при нажатии.
  • UILabel — отображение статического текста.
  • UITextField — однострочное поле для ввода и редактирования текста.
  • UISwitch, UISlider, UIStepper — элементы для выбора значений.

Контейнеры и навигация:

  • UIScrollView — базовый класс для отображения прокручиваемого контента.
  • UITableView / UICollectionView — высокооптимизированные компоненты для отображения прокручиваемых списков и сеток данных.
  • UIStackView — контейнер для автоматического расположения представлений в строку или колонку.
  • UINavigationController — управляет стеком контроллеров для иерархической навигации.
  • UITabBarController — управляет переключением между независимыми разделами приложения.

Пример создания кнопки и добавления её на экран:

// 1. Создание кнопки системного стиля
let button = UIButton(type: .system)
// 2. Установка заголовка
button.setTitle("Нажми меня", for: .normal)
// 3. Установка позиции и размера (используя Auto Layout)
button.translatesAutoresizingMaskIntoConstraints = false
// 4. Добавление обработчика нажатия
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
// 5. Добавление кнопки в иерархию представлений
view.addSubview(button)
// 6. Активация констрейнтов для позиционирования
NSLayoutConstraint.activate([
    button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    button.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])

@objc func buttonTapped() {
    print("Кнопка была нажата")
}